OSDN Git Service

Ver 301
authorJean-Michel THOORENS <jeanmichel.thoorens@gmail.com>
Tue, 11 Jun 2019 12:16:57 +0000 (14:16 +0200)
committerJean-Michel THOORENS <jeanmichel.thoorens@gmail.com>
Tue, 11 Jun 2019 12:16:57 +0000 (14:16 +0200)
127 files changed:
ADDON/ANS_COMPLEMENT.asm
ADDON/FixPoint.asm
ADDON/SD_TOOLS.asm
ADDON/UTILITY.asm
BOOT.4th [moved from MSP430-FORTH/BOOT.4th with 100% similarity]
FastForth.pdf
FastForthWords.txt
MSP430-FORTH/ANS_COMP.f
MSP430-FORTH/CHNGBAUD.4th [deleted file]
MSP430-FORTH/CHNGBAUD.f
MSP430-FORTH/CORDIC.f
MSP430-FORTH/CORETEST.4TH
MSP430-FORTH/FF_SPECS.4th [deleted file]
MSP430-FORTH/FF_SPECS.f
MSP430-FORTH/FixPoint.f
MSP430-FORTH/MSP_EXP430FR5994/ANS_COMP.4TH
MSP430-FORTH/MSP_EXP430FR5994/CHNGBAUD.4TH
MSP430-FORTH/MSP_EXP430FR5994/CORDIC.4TH
MSP430-FORTH/MSP_EXP430FR5994/FF_SPECS.4TH
MSP430-FORTH/MSP_EXP430FR5994/FIXPOINT.4TH
MSP430-FORTH/MSP_EXP430FR5994/MISC/TESTASM.4TH
MSP430-FORTH/MSP_EXP430FR5994/PROG100K.4TH
MSP430-FORTH/MSP_EXP430FR5994/RC5TOLCD.4TH
MSP430-FORTH/MSP_EXP430FR5994/RTC.4TH
MSP430-FORTH/MSP_EXP430FR5994/SD_TEST.4TH
MSP430-FORTH/MSP_EXP430FR5994/SD_TOOLS.4TH
MSP430-FORTH/MSP_EXP430FR5994/TESTXASM.4TH
MSP430-FORTH/MSP_EXP430FR5994/TSTWORDS.4TH
MSP430-FORTH/MSP_EXP430FR5994/UTILITY.4TH
MSP430-FORTH/PROG100k.f
MSP430-FORTH/RC5toLCD.f
MSP430-FORTH/RTC.f
MSP430-FORTH/SD_TEST.f
MSP430-FORTH/SD_TOOLS.f
MSP430-FORTH/TESTASM.F
MSP430-FORTH/TESTXASM.F
MSP430-FORTH/TSTWORDS.4th [deleted file]
MSP430-FORTH/UTILITY.f
MSP430-FORTH/lib/I2C_Slave_to_LCD_2x20.f
MSP430-FORTH/lib/LCD_2x20.f
README.md
SciTEDirectory.properties
binaries/CHIPSTICK_FR2433_16MHz.txt
binaries/CHIPSTICK_FR2433_1MHz.txt
binaries/CHIPSTICK_FR2433_4MHz.txt [deleted file]
binaries/CHIPSTICK_FR2433_8MHz.txt
binaries/LP_MSP430FR2476_16MHz.txt [new file with mode: 0644]
binaries/LP_MSP430FR2476_1MHz.txt [new file with mode: 0644]
binaries/LP_MSP430FR2476_8MHz.txt [new file with mode: 0644]
binaries/Log/log.txt [new file with mode: 0644]
binaries/MSP_EXP430FR2355_16MHz.txt
binaries/MSP_EXP430FR2355_1MHz.txt
binaries/MSP_EXP430FR2355_24MHz.txt
binaries/MSP_EXP430FR2355_4MHz.txt [deleted file]
binaries/MSP_EXP430FR2355_8MHz.txt
binaries/MSP_EXP430FR2433_16MHz.txt
binaries/MSP_EXP430FR2433_1MHz.txt
binaries/MSP_EXP430FR2433_4MHz.txt [deleted file]
binaries/MSP_EXP430FR2433_8MHz.txt
binaries/MSP_EXP430FR4133_16MHz.txt
binaries/MSP_EXP430FR4133_1MHz.txt
binaries/MSP_EXP430FR4133_4MHz.txt [deleted file]
binaries/MSP_EXP430FR4133_8MHz.txt
binaries/MSP_EXP430FR5739_16MHz.txt
binaries/MSP_EXP430FR5739_1MHz.txt
binaries/MSP_EXP430FR5739_24MHz.txt
binaries/MSP_EXP430FR5739_4MHz.txt [deleted file]
binaries/MSP_EXP430FR5739_8MHz.txt
binaries/MSP_EXP430FR5969_16MHz.txt
binaries/MSP_EXP430FR5969_1MHz.txt
binaries/MSP_EXP430FR5969_4MHz.txt [deleted file]
binaries/MSP_EXP430FR5969_8MHz.txt
binaries/MSP_EXP430FR5994.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5994_16MHz.txt
binaries/MSP_EXP430FR5994_1MHz.txt
binaries/MSP_EXP430FR5994_4MHz.txt [deleted file]
binaries/MSP_EXP430FR5994_8MHz.txt
binaries/MSP_EXP430FR6989_16MHz.txt
binaries/MSP_EXP430FR6989_1MHz.txt
binaries/MSP_EXP430FR6989_4MHz.txt [deleted file]
binaries/MSP_EXP430FR6989_8MHz.txt
config/Preprocess.bat
config/Select.bat
config/SendFile.ttl
config/SendToSD.ttl
forthMSP430FR.asm
forthMSP430FR_ASM.asm
forthMSP430FR_CONDCOMP.asm
forthMSP430FR_EXTD_ASM.asm
forthMSP430FR_HALFDUPLEX.asm
forthMSP430FR_SD_LOAD.asm
forthMSP430FR_SD_LowLvl.asm
forthMSP430FR_SD_RW.asm
inc/CHIPSTICK_FR2433.pat
inc/FastForthREGtoTI.pat
inc/LP_MSP430FR2476.asm [new file with mode: 0644]
inc/LP_MSP430FR2476.pat [new file with mode: 0644]
inc/MSP430FR2355.pat
inc/MSP430FR2433.pat
inc/MSP430FR2476.inc [new file with mode: 0644]
inc/MSP430FR2476.pat [new file with mode: 0644]
inc/MSP430FR2633.pat
inc/MSP430FR4133.pat
inc/MSP430FR5738.inc
inc/MSP430FR5738.pat
inc/MSP430FR5739.pat
inc/MSP430FR5948.pat
inc/MSP430FR5969.inc
inc/MSP430FR5969.pat
inc/MSP430FR5994.pat
inc/MSP430FR6989.pat
inc/MSP_EXP430FR2355.asm
inc/MSP_EXP430FR2355.pat
inc/MSP_EXP430FR2433.asm
inc/MSP_EXP430FR2433.pat
inc/MSP_EXP430FR4133.asm
inc/MSP_EXP430FR4133.pat
inc/MSP_EXP430FR5739.asm
inc/MSP_EXP430FR5739.pat
inc/MSP_EXP430FR5969.asm
inc/MSP_EXP430FR5969.pat
inc/MSP_EXP430FR5994.asm
inc/MSP_EXP430FR5994.pat
inc/MSP_EXP430FR6989.asm
inc/MSP_EXP430FR6989.pat
inc/TargetInit.asm
inc/ThingsInFirst.inc

index 37d54ae..99f21c5 100644 (file)
     FORTHWORD "{ANS_COMP}"
     mNEXT
 
+;https://forth-standard.org/standard/core/VARIABLE
+;C VARIABLE <name>       --                      define a Forth VARIABLE
+            FORTHWORD "VARIABLE"
+VARIABLE    CALL #HEADER            ; W = DDP = CFA + 2 words
+            MOV #DOVAR,-4(W)        ;   CFA = DOVAR, PFA is undefined
+            MOV #REVEAL,PC          ;   to link created VARIABLE in vocabulary
+
+;https://forth-standard.org/standard/core/CONSTANT
+;C CONSTANT <name>     n --                      define a Forth CONSTANT
+            FORTHWORD "CONSTANT"
+CONSTANT    CALL #HEADER            ; W = DDP = CFA + 2 words
+            MOV #DOCON,-4(W)        ;   CFA = DOCON
+            MOV TOS,-2(W)           ;   PFA = n
+            MOV @PSP+,TOS
+            MOV #REVEAL,PC          ;   to link created VARIABLE in vocabulary
+
 ;https://forth-standard.org/standard/core/VALUE
 ;( x "<spaces>name" -- )                      define a Forth VALUE
 ;Skip leading space delimiters. Parse name delimited by a space.
             BIS #UF10,SR
             MOV @IP+,PC
 
-;https://forth-standard.org/standard/core/StoD
-;C S>D    n -- d          single -> double prec.
+; https://forth-standard.org/standard/core/StoD
+; S>D    n -- d          single -> double prec.
             FORTHWORD "S>D"
-STOD:       SUB     #2,PSP
-            MOV     TOS,0(PSP)
-            JMP     ZEROLESS
+STOD        SUB #2,PSP
+            MOV TOS,0(PSP)
+            JMP ZEROLESS
 
     .IFDEF MPY
 
@@ -85,7 +101,7 @@ MSTAR       MOV     @PSP,&MPYS
 ;https://forth-standard.org/standard/core/MTimes
 ;C M*     n1 n2 -- dlo dhi  signed 16*16->32 multiply
             FORTHWORD "M*"
-MSTAR:      MOV     TOS,S           ; TOS= n2
+MSTAR       MOV     TOS,S           ; TOS= n2
             XOR     @PSP,S          ; S contains sign of result
             CMP     #0,0(PSP)       ; n1 > -1 ?
             JGE     u1n2MSTAR       ; yes
@@ -110,6 +126,12 @@ MSTARend    mNEXT
 
     .ENDIF ;MPY
 
+;https://forth-standard.org/standard/core/UMDivMOD
+; UM/MOD   udlo|udhi u1 -- r q   unsigned 32/16->r16 q16
+            FORTHWORD "UM/MOD"
+UMSLASHMOD  PUSH #DROP          ;3 as return address for MU/MOD
+            MOV #MUSMOD,PC
+
 ;https://forth-standard.org/standard/core/SMDivREM
 ;C SM/REM   d1lo d1hi n2 -- n3 n4  symmetric signed div
             FORTHWORD "SM/REM"
@@ -173,34 +195,40 @@ ABBS        CMP     #0,TOS       ; 1
             JN      NEGAT 
             mNEXT
 
+;https://forth-standard.org/standard/core/Plus
+;C +       n1/u1 n2/u2 -- n3/u3     add n1+n2
+            FORTHWORD "+"
+PLUS        ADD @PSP+,TOS
+            mNEXT
+
 ;https://forth-standard.org/standard/core/Times
 ;C *      n1 n2 -- n3       signed multiply
             FORTHWORD "*"
-STAR:       mDOCOL
+STAR        mDOCOL
             .word   MSTAR,DROP,EXIT
 
 ;https://forth-standard.org/standard/core/DivMOD
 ;C /MOD   n1 n2 -- n3 n4    signed divide/rem'dr
             FORTHWORD "/MOD"
-SLASHMOD:   mDOCOL
+SLASHMOD    mDOCOL
             .word   TOR,STOD,RFROM,FMSLASHMOD,EXIT
 
 ;https://forth-standard.org/standard/core/Div
 ;C /      n1 n2 -- n3       signed divide
             FORTHWORD "/"
-SLASH:      mDOCOL
+SLASH       mDOCOL
             .word   TOR,STOD,RFROM,FMSLASHMOD,NIP,EXIT
 
 ;https://forth-standard.org/standard/core/MOD
 ;C MOD    n1 n2 -- n3       signed remainder
             FORTHWORD "MOD"
-MODD:       mDOCOL
+MODD        mDOCOL
             .word   TOR,STOD,RFROM,FMSLASHMOD,DROP,EXIT
 
 ;https://forth-standard.org/standard/core/TimesDivMOD
 ;C */MOD  n1 n2 n3 -- n4 n5    n1*n2/n3, rem&quot
             FORTHWORD "*/MOD"
-SSMOD:      mDOCOL
+SSMOD       mDOCOL
             .word   TOR,MSTAR,RFROM,FMSLASHMOD,EXIT
 
 ;https://forth-standard.org/standard/core/TimesDiv
@@ -248,12 +276,38 @@ ALIGNN      BIT     #1,&DDP   ; 3
             ADD     #2,TOS
             mNEXT
 
-; https://forth-standard.org/standard/core/StoD
-; S>D    n -- d          single -> double prec.
-            FORTHWORD "S>D"
+;-------------------------------------------------------------------------------
+; STACK OPERATIONS
+;-------------------------------------------------------------------------------
+
+;https://forth-standard.org/standard/core/OVER
+;C OVER    x1 x2 -- x1 x2 x1
+            FORTHWORD "OVER"
+OVER        MOV TOS,-2(PSP)     ; 3 -- x1 (x2) x2
+            MOV @PSP,TOS        ; 2 -- x1 (x2) x1
+            SUB #2,PSP          ; 1 -- x1 x2 x1
+            mNEXT               ; 4
+
+;https://forth-standard.org/standard/core/ROT
+;C ROT    x1 x2 x3 -- x2 x3 x1
+            FORTHWORD "ROT"
+ROT         MOV @PSP,W          ; 2 fetch x2
+            MOV TOS,0(PSP)      ; 3 store x3
+            MOV 2(PSP),TOS      ; 3 fetch x1
+            MOV W,2(PSP)        ; 3 store x2
+            mNEXT               ; 4
+
+;https://forth-standard.org/standard/core/RFetch
+;C R@    -- x     R: x -- x   fetch from rtn stk
+            FORTHWORD "R@"
             SUB #2,PSP
             MOV TOS,0(PSP)
-            JMP ZEROLESS
+            MOV @RSP,TOS
+            mNEXT
+
+;----------------------------------------------------------------------
+; DOUBLE OPERATORS
+;----------------------------------------------------------------------
 
 ; https://forth-standard.org/standard/core/TwoFetch
 ; 2@    a-addr -- x1 x2    fetch 2 cells ; the lower address will appear on top of stack
@@ -284,14 +338,6 @@ TWOSTORE    MOV     @PSP+,0(TOS)
             BIC #UF10,SR
             JMP TWOSTORE
 
-; https://forth-standard.org/standard/core/TwoDUP
-; 2DUP   x1 x2 -- x1 x2 x1 x2   dup top 2 cells
-            FORTHWORD "2DUP"
-            SUB     #4,PSP          ; -- x1 x x x2
-            MOV     TOS,2(PSP)      ; -- x1 x2 x x2
-            MOV     4(PSP),0(PSP)   ; -- x1 x2 x1 x2
-            mNEXT
-
 ; https://forth-standard.org/standard/core/TwoDROP
 ; 2DROP  x1 x2 --          drop 2 cells
             FORTHWORD "2DROP"
@@ -319,6 +365,29 @@ TWOSTORE    MOV     @PSP+,0(TOS)
             MOV     6(PSP),TOS      ; -- x1 x2 x3 x4 x1 x2
             mNEXT
 
+;https://forth-standard.org/standard/core/CFetch
+; C@     c-addr -- char   fetch char from memory
+            FORTHWORD "C@"
+CFETCH      MOV.B @TOS,TOS      ;2
+            mNEXT               ;4
+
+;https://forth-standard.org/standard/core/CStore
+; C!      char c-addr --    store char in memory
+            FORTHWORD "C!"
+CSTORE      MOV.B @PSP+,0(TOS)  ;4
+            ADD #1,PSP          ;1
+            MOV @PSP+,TOS       ;2
+            mNEXT
+
+;https://forth-standard.org/standard/core/CComma
+; C,   char --        append char
+            FORTHWORD "C,"
+CCOMMA      MOV &DDP,W
+            MOV.B TOS,0(W)
+            ADD #1,&DDP
+            MOV @PSP+,TOS
+            mNEXT
+
 ;https://forth-standard.org/standard/core/AND
 ;C AND    x1 x2 -- x3           logical AND
             FORTHWORD "AND"
@@ -340,19 +409,36 @@ XORR        XOR     @PSP+,TOS
 ;https://forth-standard.org/standard/core/INVERT
 ;C INVERT   x1 -- x2            bitwise inversion
             FORTHWORD "INVERT"
-INVERT      XOR     #-1,TOS
+            XOR     #-1,TOS
             mNEXT
 
+;https://forth-standard.org/standard/core/less
+;C <      n1 n2 -- flag        test n1<n2, signed
+            FORTHWORD "<"
+LESS        SUB @PSP+,TOS   ;1 TOS=n2-n1
+            JL FALSETOS     ;2 signed
+            JZ LESSEND      ;2
+TRUETOS     MOV #-1,TOS     ;1 flag Z = 0
+LESSEND     mNEXT           ;4
+
+;https://forth-standard.org/standard/core/more
+;C >     n1 n2 -- flag         test n1>n2, signed
+            FORTHWORD ">"
+GREATER     SUB @PSP+,TOS   ;2 TOS=n2-n1
+            JL TRUETOS      ;2 --> +5
+FALSETOS    AND #0,TOS      ;1 flag Z = 1
+            mNEXT           ;4
+
 ;https://forth-standard.org/standard/core/LSHIFT
 ;C LSHIFT  x1 u -- x2    logical L shift u places
             FORTHWORD "LSHIFT"
 LSHIFT      MOV     @PSP+,W
             AND     #1Fh,TOS        ; no need to shift more than 16
             JZ      LSH_X
-LSH_1:      ADD     W,W
+LSH_1       ADD     W,W
             SUB     #1,TOS
             JNZ     LSH_1
-LSH_X:      MOV     W,TOS
+LSH_X       MOV     W,TOS
             mNEXT
 
 ;https://forth-standard.org/standard/core/RSHIFT
@@ -361,11 +447,11 @@ LSH_X:      MOV     W,TOS
 RSHIFT      MOV     @PSP+,W
             AND     #1Fh,TOS        ; no need to shift more than 16
             JZ      RSH_X
-RSH_1:      BIC     #1,SR           ; CLRC
+RSH_1       BIC     #1,SR           ; CLRC
             RRC     W
             SUB     #1,TOS
             JNZ     RSH_1
-RSH_X:      MOV     W,TOS
+RSH_X       MOV     W,TOS
             mNEXT
 
 ;https://forth-standard.org/standard/core/TwoTimes
@@ -383,17 +469,17 @@ TWODIV      RRA     TOS
 ;https://forth-standard.org/standard/core/MAX
 ;C MAX    n1 n2 -- n3       signed maximum
             FORTHWORD "MAX"
-MAX:        CMP     @PSP,TOS    ; n2-n1
+MAX         CMP     @PSP,TOS    ; n2-n1
             JL      SELn1       ; n2<n1
-SELn2:      ADD     #2,PSP
+SELn2       ADD     #2,PSP
             mNEXT
 
 ;https://forth-standard.org/standard/core/MIN
 ;C MIN    n1 n2 -- n3       signed minimum
             FORTHWORD "MIN"
-MIN:        CMP     @PSP,TOS    ; n2-n1
+MIN         CMP     @PSP,TOS    ; n2-n1
             JL      SELn2       ; n2<n1
-SELn1:      MOV     @PSP+,TOS
+SELn1       MOV     @PSP+,TOS
             mNEXT
 
 ;https://forth-standard.org/standard/core/PlusStore
@@ -424,11 +510,11 @@ FILL        MOV     @PSP+,X     ; count
             MOV     @PSP+,W     ; address
             CMP     #0,X
             JZ      FILL_X
-FILL_1:     MOV.B   TOS,0(W)    ; store char in memory
+FILL_1      MOV.B   TOS,0(W)    ; store char in memory
             ADD     #1,W
             SUB     #1,X
             JNZ     FILL_1
-FILL_X:     MOV     @PSP+,TOS   ; pop new TOS
+FILL_X      MOV     @PSP+,TOS   ; pop new TOS
             mNEXT
 
 ;https://forth-standard.org/standard/core/HEX
@@ -457,6 +543,67 @@ DOTPAREN    MOV #0,&CAPS
             .word   FBLANK,LIT,CAPS,STORE
             .word   EXIT
 
+;https://forth-standard.org/standard/core/J
+;C J        -- n   R: 4*sys -- 4*sys
+;C                  get the second loop index
+            FORTHWORD "J"
+JJ          SUB #2,PSP      ; make room in TOS
+            MOV TOS,0(PSP)
+            MOV 4(RSP),TOS  ; index = loopctr - fudge
+            SUB 6(RSP),TOS
+            mNEXT
+
+;https://forth-standard.org/standard/core/SPACE
+;C SPACE   --               output a space
+            FORTHWORD "SPACE"
+SPACE       SUB #2,PSP              ;1
+            MOV TOS,0(PSP)          ;3
+            MOV #20h,TOS            ;2
+            JMP EMIT                ;17~  23~
+
+;https://forth-standard.org/standard/core/SPACES
+;C SPACES   n --            output n spaces
+            FORTHWORD "SPACES"
+SPACES      CMP #0,TOS
+            JZ SPACESNEXT2
+            PUSH IP
+            MOV #SPACESNEXT,IP
+            JMP SPACE               ;25~
+SPACESNEXT  FORTHtoASM
+            SUB #2,IP               ;1
+            SUB #1,TOS              ;1
+            JNZ SPACE               ;25~ ==> 27~ by space ==> 2.963 MBds @ 8 MHz
+            MOV @RSP+,IP            ;
+SPACESNEXT2 MOV @PSP+,TOS           ; --         drop n
+            mNEXT                   ;
+
+;https://forth-standard.org/standard/core/UNLOOP
+;UNLOOP   --   R: sys1 sys2 --  drop loop parms
+            FORTHWORD "UNLOOP"
+UNLOOP      ADD #4,RSP
+            MOV @IP+,PC
+
+;https://forth-standard.org/standard/core/LEAVE
+;C LEAVE    --    L: -- adrs
+            FORTHWORDIMM "LEAVE"    ; immediate
+LEAV        MOV &DDP,W              ; compile three words
+            MOV #UNLOOP,0(W)        ; [HERE] = UNLOOP
+            MOV #BRAN,2(W)          ; [HERE+2] = BRAN
+            ADD #6,&DDP             ; [HERE+4] = After LOOP adr
+            ADD #2,&LEAVEPTR
+            ADD #4,W
+            MOV &LEAVEPTR,X
+            MOV W,0(X)              ; leave HERE+4 on LEAVEPTR stack
+            mNEXT
+
+;https://forth-standard.org/standard/core/RECURSE
+;C RECURSE  --      recurse to current definition (compile current definition)
+            FORTHWORDIMM "RECURSE"  ; immediate
+RECURSE     MOV &DDP,X              ;
+            MOV &LAST_CFA,0(X)      ;
+            ADD #2,&DDP             ;
+            mNEXT
+
 ;https://forth-standard.org/standard/core/SOURCE
 ;C SOURCE   -- adr u    current input buffer
             FORTHWORD "SOURCE"
@@ -466,6 +613,12 @@ DOTPAREN    MOV #0,&CAPS
             MOV     &SOURCE_ORG,0(PSP)
             mNEXT
 
+;https://forth-standard.org/standard/core/BASE
+;C BASE    -- a-addr       holds conversion radix
+            FORTHWORD "BASE"
+            mDOCON
+            .word   BASE    ; VARIABLE address in RAM space
+
 ;https://forth-standard.org/standard/core/toIN
 ;C >IN     -- a-addr       holds offset in input stream
             FORTHWORD ">IN"
index 8fab492..03262b9 100644 (file)
@@ -326,7 +326,8 @@ FSTAR1   mDOCOL
         mDOCOL
         .word   LESSNUM,DUP,TOR,DABBS
         .word   lit,4,FNUMS,lit,',',HOLD,NUMS
-        .word   RFROM,SIGN,NUMGREATER,TYPE,SPACE,EXIT
+        .word   RFROM,SIGN,NUMGREATER,TYPE
+        .word   lit,20h,EMIT,EXIT
         
         FORTHWORD "S>F"     ; convert a signed number to a Q15.16 (signed) number
         SUB #2,PSP
@@ -356,4 +357,4 @@ TWOCONSTANT
         .word DOES
         .word TWOFETCH
         .word EXIT
-    .ENDIF
\ No newline at end of file
+    .ENDIF
index 0b8c4d9..becf133 100644 (file)
@@ -18,9 +18,7 @@
 ; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
-    .IFNDEF UTILITY
-
-    .IFNDEF ANS_CORE_COMPLEMENT
+    .IFNDEF MAX
 
 ;https://forth-standard.org/standard/core/MAX
 ;C MAX    n1 n2 -- n3       signed maximum
@@ -38,8 +36,46 @@ MIN:        CMP     @PSP,TOS    ; n2-n1
 SELn1:      MOV     @PSP+,TOS
             mNEXT
 
-    .ENDIF ;  ANS_CORE_COMPLIANT
-
+    .ENDIF
+
+    .IFNDEF SPACE
+;https://forth-standard.org/standard/core/SPACE
+;C SPACE   --               output a space
+            FORTHWORD "SPACE"
+SPACE       SUB #2,PSP              ;1
+            MOV TOS,0(PSP)          ;3
+            MOV #20h,TOS            ;2
+            MOV #EMIT,PC            ;17~  23~
+
+;https://forth-standard.org/standard/core/SPACES
+;C SPACES   n --            output n spaces
+            FORTHWORD "SPACES"
+SPACES      CMP #0,TOS
+            JZ SPACESNEXT2
+            PUSH IP
+            MOV #SPACESNEXT,IP
+            JMP SPACE               ;25~
+SPACESNEXT  FORTHtoASM
+            SUB #2,IP               ;1
+            SUB #1,TOS              ;1
+            JNZ SPACE               ;25~ ==> 27~ by space ==> 2.963 MBds @ 8 MHz
+            MOV @RSP+,IP            ;
+SPACESNEXT2 MOV @PSP+,TOS           ; --         drop n
+            mNEXT                   ;
+
+    .ENDIF
+
+        .IFNDEF OVER
+;https://forth-standard.org/standard/core/OVER
+;C OVER    x1 x2 -- x1 x2 x1
+            FORTHWORD "OVER"
+OVER        MOV TOS,-2(PSP)     ; 3 -- x1 (x2) x2
+            MOV @PSP,TOS        ; 2 -- x1 (x2) x1
+            SUB #2,PSP          ; 1 -- x1 x2 x1
+            mNEXT               ; 4
+        .ENDIF
+
+    .IFNDEF UDOTR
 ;https://forth-standard.org/standard/core/UDotR
 ;X U.R      u n --      display u unsigned in n width
             FORTHWORD "U.R"
@@ -47,31 +83,54 @@ UDOTR       mDOCOL
             .word   TOR,LESSNUM,lit,0,NUM,NUMS,NUMGREATER
             .word   RFROM,OVER,MINUS,lit,0,MAX,SPACES,TYPE
             .word   EXIT
+    .ENDIF
+
+        .IFNDEF CFETCH
+;https://forth-standard.org/standard/core/CFetch
+;C C@     c-addr -- char   fetch char from memory
+            FORTHWORD "C@"
+CFETCH      MOV.B @TOS,TOS      ;2
+            mNEXT               ;4
+        .ENDIF
+
+    .IFNDEF PLUS
+;https://forth-standard.org/standard/core/Plus
+;C +       n1/u1 n2/u2 -- n3/u3     add n1+n2
+            FORTHWORD "+"
+PLUS        ADD @PSP+,TOS
+            mNEXT
+    .ENDIF
 
+    .IFNDEF DUMP
 ;https://forth-standard.org/standard/tools/DUMP
             FORTHWORD "DUMP"
 DUMP        PUSH    IP
-            PUSH    &BASE
-            MOV     #10h,&BASE
-            ADD     @PSP,TOS                ; compute end address
-            AND     #0FFF0h,0(PSP)          ; compute start address
+            PUSH    &BASE                   ; save current base
+            MOV     #10h,&BASE              ; HEX base
+            ADD     @PSP,TOS                ; -- ORG END
             ASMtoFORTH
-            .word   SWAP,xdo                ; generate line
+            .word   SWAP                    ; -- END ORG
+            .word   xdo                     ; --
 DUMP1       .word   CR
-            .word   II,lit,7,UDOTR,SPACE    ; generate address
-            .word   II,lit,10h,PLUS,II,xdo  ; display 16 bytes
+            .word   II,lit,4,UDOTR,SPACE    ; generate address
+
+            .word   II,lit,8,PLUS,II,xdo    ; display first 8 bytes
 DUMP2       .word   II,CFETCH,lit,3,UDOTR
-            .word   xloop,DUMP2
+            .word   xloop,DUMP2             ; bytes display loop
+            .word   SPACE
+            .word   II,lit,10h,PLUS,II,lit,8,PLUS,xdo    ; display last 8 bytes
+DUMP3       .word   II,CFETCH,lit,3,UDOTR
+            .word   xloop,DUMP3             ; bytes display loop
             .word   SPACE,SPACE
             .word   II,lit,10h,PLUS,II,xdo  ; display 16 chars
-DUMP3       .word   II,CFETCH
+DUMP4       .word   II,CFETCH
             .word   lit,7Eh,MIN,FBLANK,MAX,EMIT
-            .word   xloop,DUMP3
-            .word   lit,10h,xploop,DUMP1
-            .word   RFROM,FBASE,STORE
+            .word   xloop,DUMP4             ; chars display loop
+            .word   lit,10h,xploop,DUMP1    ; line loop
+            .word   RFROM,lit,BASE,STORE       ; restore current base
             .word   EXIT
 
-    .ENDIF ; UTILITY
+    .ENDIF
 
     FORTHWORD "{SD_TOOLS}"
     mNEXT
@@ -92,24 +151,28 @@ DisplaySector
     .word   EXIT                    ;
 ; ----------------------------------;
 
-; TIP : How to identify FAT16 or FAT32 SD_Card ?
-; 1 CLUSTER <==> FAT16 RootDIR
-; 2 CLUSTER <==> FAT32 RootDIR
 ; ----------------------------------;
 ; read first sector of Cluster and dump it
 ; ----------------------------------;
             FORTHWORD "CLUSTER"     ; cluster.  --         don't forget to add decimal point to your sector number (if < 65536)
 ; ----------------------------------;
-    MOV     TOS,&ClusterH           ;
-    MOV     @PSP,&ClusterL          ;
-Clust_ClustProcess
-    CALL    #ComputeClusFrstSect    ;
-    MOV     &SectorL,0(PSP)         ;
-    MOV     &SectorH,TOS            ;
-    JMP     SECTOR                  ;
+CLUSTER
+    MOV.B   &SecPerClus,W           ; SecPerClus(54321) = multiplicator
+    MOV     @PSP,X                  ; X = ClusterL
+    JMP     CLUSTER1                ;
+CLUSTERLOOP
+    ADD     X,X                     ; (RLA) shift one left MULTIPLICANDlo16
+    ADDC    TOS,TOS                 ; (RLC) shift one left MULTIPLICANDhi8
+CLUSTER1
+    RRA     W                       ; shift one right multiplicator
+    JNC     CLUSTERLOOP             ; if not carry
+    ADD     &OrgClusters,X          ; add OrgClusters = sector of virtual cluster 0 (word size)
+    MOV     X,0(PSP)      
+    ADDC    #0,TOS                  ; don't forget carry
+    JMP     SECTOR                  ; jump to a defined word
 ; ----------------------------------;
 
-; dump FAT1 sector of last entry
+; dump FAT1 first sector
 ; ----------------------------------;
             FORTHWORD "FAT"         ;VWXY Display first FATsector
 ; ----------------------------------;
@@ -121,14 +184,19 @@ Clust_ClustProcess
 ; ----------------------------------;
 
 
-; dump DIR sector of opened file or first sector of current DIR by default
+; dump current DIR first sector
 ; ----------------------------------;
-            FORTHWORD "DIR"         ; Display DIR sector of CurrentHdl or CurrentDir sector by default 
+            FORTHWORD "DIR"         ;
 ; ----------------------------------;
-    SUB     #4,PSP                  ;           Make room for result
+    SUB     #4,PSP                  ;
     MOV     TOS,2(PSP)              ;           save TOS
-    MOV     &DIRClusterL,&ClusterL  ;
-    MOV     &DIRClusterH,&ClusterH  ;
-    JMP     Clust_ClustProcess      ;
+    MOV     &DIRclusterL,0(PSP)     ;
+    MOV     &DIRclusterH,TOS        ;
+    CMP     #0,TOS
+    JNZ     CLUSTER
+    CMP     #1,0(PSP)               ; cluster 1 ?
+    JNZ     CLUSTER       
+    MOV     &OrgRootDir,0(PSP)      ; if yes, special case of FAT16 OrgRootDir        
+    JMP     SECTOR
 ; ----------------------------------;
 
index ff39c4a..3a218b3 100644 (file)
     FORTHWORD "{TOOLS}"
     mNEXT
 
-    .IFNDEF ANDD
-            FORTHWORD "AND"      ; --      
+        .IFNDEF ANDD
+;https://forth-standard.org/standard/core/AND
+;C AND    x1 x2 -- x3           logical AND
+            FORTHWORD "AND"
 ANDD        AND     @PSP+,TOS
             mNEXT
-    .ENDIF
+        .ENDIF
+
+        .IFNDEF CFETCH
+;https://forth-standard.org/standard/core/CFetch
+;C C@     c-addr -- char   fetch char from memory
+            FORTHWORD "C@"
+CFETCH      MOV.B @TOS,TOS      ;2
+            mNEXT               ;4
+        .ENDIF
+
+        .IFNDEF SPACE
+;https://forth-standard.org/standard/core/SPACE
+;C SPACE   --               output a space
+            FORTHWORD "SPACE"
+SPACE       SUB #2,PSP              ;1
+            MOV TOS,0(PSP)          ;3
+            MOV #20h,TOS            ;2
+            MOV #EMIT,PC            ;17~  23~
+
+;https://forth-standard.org/standard/core/SPACES
+;C SPACES   n --            output n spaces
+            FORTHWORD "SPACES"
+SPACES      CMP #0,TOS
+            JZ SPACESNEXT2
+            PUSH IP
+            MOV #SPACESNEXT,IP
+            JMP SPACE               ;25~
+SPACESNEXT  FORTHtoASM
+            SUB #2,IP               ;1
+            SUB #1,TOS              ;1
+            JNZ SPACE               ;25~ ==> 27~ by space ==> 2.963 MBds @ 8 MHz
+            MOV @RSP+,IP            ;
+SPACESNEXT2 MOV @PSP+,TOS           ; --         drop n
+            mNEXT                   ;
+
+        .ENDIF
 
 ;https://forth-standard.org/standard/tools/DotS
             FORTHWORD ".S"      ; --            print <depth> of Param Stack and stack contents if not empty
@@ -44,8 +81,8 @@ DOTS1       MOV     TOS,-4(PSP) ; -- S0  ( tos S0 SP )
             .word   DOT                 ; display #cells
             .word   lit,08h,EMIT        ; backspace
             .word   lit,'>',EMIT,SPACE
-            .word   OVER,OVER,GREATER
-            .word   QTBRAN,STKDISPL1
+            .word   TWODUP,ONEPLUS,ULESS
+            .word   QFBRAN,STKDISPL1
             .word   DROP,DROP,EXIT
 STKDISPL1   .word   xdo
 STKDISPL2   .word   II,FETCH,UDOT
@@ -73,7 +110,6 @@ QUESTION    MOV     @TOS,TOS
             FORTHWORD "WORDS"
 WORDS       mDOCOL
             .word   CR
-            .word   lit,3,SPACES
             .word   LIT,CONTEXT,FETCH   ; -- VOC_BODY
 WORDS1      .word   FETCH               ; -- NFA
             .word   QDUP                ; -- 0 | -- NFA NFA 
@@ -98,6 +134,17 @@ PAD         mDOCON
             .WORD    PAD_ORG
         .ENDIF
 
+        .IFNDEF ROT
+;https://forth-standard.org/standard/core/ROT
+;C ROT    x1 x2 x3 -- x2 x3 x1
+            FORTHWORD "ROT"
+ROT         MOV @PSP,W          ; 2 fetch x2
+            MOV TOS,0(PSP)      ; 3 store x3
+            MOV 2(PSP),TOS      ; 3 fetch x1
+            MOV W,2(PSP)        ; 3 store x2
+            mNEXT               ; 4
+        .ENDIF
+
 ;https://forth-standard.org/standard/tools/WORDS
 ;X WORDS        --      list all words in first vocabulary in CONTEXT. 38 words
             FORTHWORD "WORDS"
@@ -133,7 +180,7 @@ WORDS5      .word   DROP
     .ENDCASE
 
 
-    .IFNDEF ANS_CORE_COMPLEMENT
+    .IFNDEF MAX
 
 ;https://forth-standard.org/standard/core/MAX
 ;C MAX    n1 n2 -- n3       signed maximum
@@ -153,6 +200,25 @@ SELn1:      MOV     @PSP+,TOS
 
     .ENDIF
 
+    .IFNDEF PLUS
+;https://forth-standard.org/standard/core/Plus
+;C +       n1/u1 n2/u2 -- n3/u3     add n1+n2
+            FORTHWORD "+"
+PLUS        ADD @PSP+,TOS
+            mNEXT
+    .ENDIF
+
+        .IFNDEF OVER
+;https://forth-standard.org/standard/core/OVER
+;C OVER    x1 x2 -- x1 x2 x1
+            FORTHWORD "OVER"
+OVER        MOV TOS,-2(PSP)     ; 3 -- x1 (x2) x2
+            MOV @PSP,TOS        ; 2 -- x1 (x2) x1
+            SUB #2,PSP          ; 1 -- x1 x2 x1
+            mNEXT               ; 4
+        .ENDIF
+
+    .IFNDEF UDOTR
 ;https://forth-standard.org/standard/core/UDotR
 ;X U.R      u n --      display u unsigned in n width
             FORTHWORD "U.R"
@@ -160,7 +226,7 @@ UDOTR       mDOCOL
             .word   TOR,LESSNUM,lit,0,NUM,NUMS,NUMGREATER
             .word   RFROM,OVER,MINUS,lit,0,MAX,SPACES,TYPE
             .word   EXIT
-
+    .ENDIF
 
 ;https://forth-standard.org/standard/tools/DUMP
             FORTHWORD "DUMP"
@@ -169,9 +235,8 @@ DUMP        PUSH    IP
             MOV     #10h,&BASE              ; HEX base
             ADD     @PSP,TOS                ; -- ORG END
             ASMtoFORTH
-            .word   SWAP,OVER,OVER          ; -- END ORG END ORG
-            .word   UDOT,UDOT               ; -- END ORG          display org end
-            .word   LIT,0FFFEh,ANDD,xdo     ; -- END ORG_modulo_2
+            .word   SWAP                    ; -- END ORG
+            .word   xdo                     ; --
 DUMP1       .word   CR
             .word   II,lit,4,UDOTR,SPACE    ; generate address
 
@@ -188,6 +253,6 @@ DUMP4       .word   II,CFETCH
             .word   lit,7Eh,MIN,FBLANK,MAX,EMIT
             .word   xloop,DUMP4             ; chars display loop
             .word   lit,10h,xploop,DUMP1    ; line loop
-            .word   RFROM,FBASE,STORE       ; restore current base
+            .word   RFROM,lit,BASE,STORE       ; restore current base
             .word   EXIT
 
similarity index 100%
rename from MSP430-FORTH/BOOT.4th
rename to BOOT.4th
index 8a13e89..703ece5 100644 (file)
Binary files a/FastForth.pdf and b/FastForth.pdf differ
index 3a3b461..437274e 100644 (file)
@@ -258,7 +258,7 @@ CMPA    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=235
 MOVA    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=238
 SUBA    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=241
 
-RPT
+RPT     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=219
 
 CONDCOMP ADD-ON
 ---------------
index d1a8efe..0440bc4 100644 (file)
 \ FORTH conditionnals:  unary{ 0= 0< 0> }, binary{ = < > U< }
 \
 \ ASSEMBLER conditionnal usage with IF UNTIL WHILE  S<  S>=  U<   U>=  0=  0<>  0>=
-\ ASSEMBLER conditionnal usage with ?JMP ?GOTO      S<  S>=  U<   U>=  0=  0<>  0<
+\ ASSEMBLER conditionnal usage with ?GOTO           S<  S>=  U<   U>=  0=  0<>  0<
 
-: DEFINED! ECHO 1 ABORT" already loaded!" ;
-
-[DEFINED] {ANS_COMP} [IF] DEFINED!
-
-[ELSE]
+[UNDEFINED] {ANS_COMP} [IF]
 
 PWR_STATE
 
@@ -51,26 +47,159 @@ MARKER {ANS_COMP}
 \ TO name Run-time: ( x -- )
 \ Assign the value x to name.
 
-: VALUE 
-CREATE ,
-DOES> 
+[UNDEFINED] VARIABLE [IF]
+\ https://forth-standard.org/standard/core/VARIABLE
+\ VARIABLE <name>       --                      define a Forth VARIABLE
+
+: VARIABLE 
+DEFER
 HI2LO
 MOV @RSP+,IP
-BIT #UF10,SR
-0= IF
-    MOV #@,PC
-THEN 
-BIC #UF10,SR
-MOV #!,PC
+MOV #DOVAR,-4(W)        \   CFA = DOVAR
+MOV @IP+,PC
 ENDCODE
 
-\ https://forth-standard.org/standard/core/TO
-\ TO name Run-time: ( x -- )
-\ Assign the value x to named VALUE.
-CODE TO
-BIS #UF10,SR
+[THEN]
+
+[UNDEFINED] CONSTANT [IF]
+\ https://forth-standard.org/standard/core/CONSTANT
+\ CONSTANT <name>     n --                      define a Forth CONSTANT 
+: CONSTANT 
+DEFER
+HI2LO
+MOV @RSP+,IP
+MOV #DOCON,-4(W)        \   CFA = DOCON
+MOV TOS,-2(W)           \   PFA = n
+MOV @PSP+,TOS
 MOV @IP+,PC
 ENDCODE
+[THEN]
+
+\ https://forth-standard.org/standard/core/STATE
+\ STATE   -- a-addr       holds compiler state
+STATEADR CONSTANT STATE
+
+[UNDEFINED] BASE [IF]
+\ https://forth-standard.org/standard/core/BASE
+\ BASE    -- a-addr       holds conversion radix
+BASEADR CONSTANT BASE
+[THEN]
+
+[UNDEFINED] >IN [IF]
+\ https://forth-standard.org/standard/core/toIN
+\ C >IN     -- a-addr       holds offset in input stream
+TOIN CONSTANT >IN
+[THEN]
+
+[UNDEFINED] PAD [IF]
+\ https://forth-standard.org/standard/core/PAD
+\  PAD           --  addr
+PAD_ORG CONSTANT PAD
+[THEN]
+
+[UNDEFINED] BL [IF]
+\ https://forth-standard.org/standard/core/BL
+\ BL      -- char            an ASCII space
+#32 CONSTANT BL
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+\ https://forth-standard.org/standard/core/SPACE
+\ SPACE   --               output a space
+: SPACE
+BL EMIT ;
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+\ https://forth-standard.org/standard/core/SPACES
+\ SPACES   n --            output n spaces
+CODE SPACES
+CMP #0,TOS
+0<> IF
+    PUSH IP
+    BEGIN
+        LO2HI
+        BL EMIT
+        HI2LO
+        SUB #2,IP 
+        SUB #1,TOS
+    0= UNTIL
+    MOV @RSP+,IP
+THEN
+MOV @PSP+,TOS           \ --         drop n
+NEXT              
+ENDCODE
+[THEN]
+
+
+\ \ https://forth-standard.org/standard/core/VALUE
+\ : VALUE                 \ x "<spaces>name" -- 
+\ CREATE ,
+\ DOES> 
+\ HI2LO
+\ MOV @RSP+,IP
+\ BIT #UF10,SR    \ see TO
+\ 0= IF
+\     MOV #@,PC
+\ THEN 
+\ BIC #UF10,SR
+\ MOV #!,PC
+\ ENDCODE
+
+\ \ https://forth-standard.org/standard/core/TO
+\ \ TO name Run-time: ( x -- )
+\ \ Assign the value x to named VALUE.
+\ CODE TO
+\ BIS #UF10,SR
+\ MOV @IP+,PC
+\ ENDCODE
+
+\ https://forth-standard.org/standard/core/StoD
+\ S>D    n -- d          single -> double prec.
+: S>D
+    DUP 0<
+;
+
+[UNDEFINED] NIP [IF]
+\ https://forth-standard.org/standard/core/NIP
+\ NIP      x1 x2 -- x2         Drop the first item below the top of stack
+CODE NIP
+ADD #2,PSP
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] C@ [IF]
+\ https://forth-standard.org/standard/core/CFetch
+\ C@     c-addr -- char   fetch char from memory
+CODE C@
+MOV.B @TOS,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] C! [IF]
+\ https://forth-standard.org/standard/core/CStore
+\ C!      char c-addr --    store char in memory
+CODE C!
+MOV.B @PSP+,0(TOS)  \ 4
+ADD #1,PSP          \ 1
+MOV @PSP+,TOS       \ 2
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] C, [IF]
+\ https://forth-standard.org/standard/core/CComma
+\ C,   char --        append char
+CODE C,
+MOV &DP,W
+MOV.B TOS,0(W)
+ADD #1,&DP
+MOV @PSP+,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
 
 [UNDEFINED] AND [IF]
 \ https://forth-standard.org/standard/core/AND
@@ -99,6 +228,15 @@ MOV @IP+,PC
 ENDCODE
 [THEN]
 
+[UNDEFINED] + [IF]
+\ https://forth-standard.org/standard/core/Plus
+\ +       n1/u1 n2/u2 -- n3/u3     add n1+n2
+CODE +
+ADD @PSP+,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
 \ https://forth-standard.org/standard/core/INVERT
 \ INVERT   x1 -- x2            bitwise inversion
 CODE INVERT
@@ -106,6 +244,26 @@ XOR #-1,TOS
 MOV @IP+,PC
 ENDCODE
 
+\ https://forth-standard.org/standard/core/less
+\ <      n1 n2 -- flag        test n1<n2, signed
+CODE <
+        SUB @PSP+,TOS   \ 1 TOS=n2-n1
+        S< ?GOTO FW1    \ 2 signed
+    0<> IF              \ 2
+BW1     MOV #-1,TOS     \ 1 flag Z = 0
+    THEN
+        MOV @IP+,PC
+ENDCODE
+
+\ https://forth-standard.org/standard/core/more
+\ >     n1 n2 -- flag         test n1>n2, signed
+CODE >
+        SUB @PSP+,TOS   \ 2 TOS=n2-n1
+        S< ?GOTO BW1    \ 2 --> +5
+FW1     AND #0,TOS      \ 1 flag Z = 1
+        MOV @IP+,PC
+ENDCODE
+
 \ https://forth-standard.org/standard/core/LSHIFT
 \ LSHIFT  x1 u -- x2    logical L shift u places
 CODE LSHIFT
@@ -170,7 +328,9 @@ ENDCODE
 \ --------------------
 \ ARITHMETIC OPERATORS
 \ --------------------
-$1A04 C@ $EF > [IF] ; test tag value MSP430FR413x subfamily without hardware_MPY 
+TLV_ORG 4 + @ $81F3 U<
+$81EF TLV_ORG 4 + @ U< 
+= [IF]   ; MSP430FR413x subfamily without hardware_MPY
 
 \ https://forth-standard.org/standard/core/MTimes
 \ M*     n1 n2 -- dlo dhi  signed 16*16->32 multiply
@@ -202,7 +362,7 @@ THEN
 MOV @IP+,PC
 ENDCODE
 
-[ELSE]              ; MSP430FRxxxx with hardware_MPY
+[ELSE]  ; MSP430FRxxxx with hardware_MPY
 
 \ https://forth-standard.org/standard/core/UMTimes
 \ UM*     u1 u2 -- udlo udhi   unsigned 16x16->32 mult.
@@ -223,6 +383,15 @@ ENDCODE
 
 [THEN]
 
+\ https://forth-standard.org/standard/core/UMDivMOD
+\ UM/MOD   udlo|udhi u1 -- r q   unsigned 32/16->r16 q16
+CODE UM/MOD
+    PUSH #DROP      \
+    MOV #<#,X       \ X = addr of <#
+    ADD #8,X        \ X = addr of MUSMOD
+    MOV X,PC        \ execute MUSMOD then RET to DROP
+ENDCODE
+
 \ https://forth-standard.org/standard/core/SMDivREM
 \ SM/REM   DVDlo DVDhi DIVlo -- r3 q4  symmetric signed div
 CODE SM/REM
@@ -328,11 +497,39 @@ M* DROP
 >R M* R> FM/MOD NIP
 ;
 
-\ https://forth-standard.org/standard/core/StoD
-\ S>D    n -- d          single -> double prec.
-: S>D
-    DUP 0<
-;
+\ -------------------------------------------------------------------------------
+\  STACK OPERATIONS
+\ -------------------------------------------------------------------------------
+
+[UNDEFINED] OVER [IF]
+\ https://forth-standard.org/standard/core/OVER
+\ OVER    x1 x2 -- x1 x2 x1
+CODE OVER
+MOV TOS,-2(PSP)     \ 3 -- x1 (x2) x2
+MOV @PSP,TOS        \ 2 -- x1 (x2) x1
+SUB #2,PSP          \ 1 -- x1 x2 x1
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+\ https://forth-standard.org/standard/core/ROT
+\ ROT    x1 x2 x3 -- x2 x3 x1
+CODE ROT
+MOV @PSP,W          \ 2 fetch x2
+MOV TOS,0(PSP)      \ 3 store x3
+MOV 2(PSP),TOS      \ 3 fetch x1
+MOV W,2(PSP)        \ 3 store x2
+MOV @IP+,PC
+ENDCODE
+
+\ https://forth-standard.org/standard/core/RFetch
+\ R@    -- x     R: x -- x   fetch from return stack
+CODE R@
+SUB #2,PSP
+MOV TOS,0(PSP)
+MOV @RSP,TOS
+MOV @IP+,PC
+ENDCODE
 
 \ ----------------------------------------------------------------------
 \ DOUBLE OPERATORS
@@ -343,42 +540,32 @@ M* DROP
 \ https://forth-standard.org/standard/core/TwoFetch
 \ 2@    a-addr -- x1 x2    fetch 2 cells ; the lower address will appear on top of stack
 CODE 2@
-SUB #2,PSP
-MOV 2(TOS),0(PSP)
-MOV @TOS,TOS
-MOV @IP+,PC
+BW1 SUB #2,PSP
+    MOV 2(TOS),0(PSP)
+    MOV @TOS,TOS
+    MOV @IP+,PC
 ENDCODE
 
 \ https://forth-standard.org/standard/core/TwoStore
 \ 2!    x1 x2 a-addr --    store 2 cells ; the top of stack is stored at the lower adr
 CODE 2!
-MOV @PSP+,0(TOS)
-MOV @PSP+,2(TOS)
-MOV @PSP+,TOS
-MOV @IP+,PC
+BW2 MOV @PSP+,0(TOS)
+    MOV @PSP+,2(TOS)
+    MOV @PSP+,TOS
+    MOV @IP+,PC
 ENDCODE
 
-\ https://forth-standard.org/standard/double/TwoVALUE
-: 2VALUE
-CREATE
-, ,             \ compile Shi then Flo
-DOES>
-HI2LO
-MOV @RSP+,IP
-BIT #UF10,SR
-0= ?JMP 2@ 
-BIC #UF10,SR
-JMP 2!
-ENDCODE
-
-\ https://forth-standard.org/standard/core/TwoDUP
-\ 2DUP   x1 x2 -- x1 x2 x1 x2   dup top 2 cells
-CODE 2DUP
-SUB #4,PSP          \ -- x1 x x x2
-MOV TOS,2(PSP)      \ -- x1 x2 x x2
-MOV 4(PSP),0(PSP)   \ -- x1 x2 x1 x2
-MOV @IP+,PC
-ENDCODE
+\ \ https://forth-standard.org/standard/double/TwoVALUE
+\ : 2VALUE        \ x1 x2 "<spaces>name" --
+\ CREATE , ,      \ compile Shi then Flo
+\ DOES>
+\ HI2LO
+\ MOV @RSP+,IP
+\ BIT #UF10,SR    \see TO
+\ 0= ?GOTO BW1 
+\ BIC #UF10,SR
+\ GOTO BW2
+\ ENDCODE
 
 \ https://forth-standard.org/standard/core/TwoDROP
 \ 2DROP  x1 x2 --          drop 2 cells
@@ -464,6 +651,7 @@ ENDCODE
 \ ---------------------------
 \ BLOCK AND STRING COMPLEMENT
 \ ---------------------------
+
 \ https://forth-standard.org/standard/core/CHAR
 \ CHAR   -- char           parse ASCII character
 : CHAR
@@ -473,7 +661,7 @@ ENDCODE
 \ https://forth-standard.org/standard/core/BracketCHAR
 \ [CHAR]   --          compile character literal
 : [CHAR]
-    CHAR lit lit , ,
+    CHAR POSTPONE LITERAL
 ; IMMEDIATE
 
 \ https://forth-standard.org/standard/core/PlusStore
@@ -504,6 +692,7 @@ ENDCODE
 \ --------------------
 \ INTERPRET COMPLEMENT
 \ --------------------
+
 \ https://forth-standard.org/standard/core/HEX
 CODE HEX
 MOV #$10,&BASE
@@ -532,6 +721,48 @@ COUNT TYPE
 BL CAPS !       \ CAPS ON
 ; IMMEDIATE
 
+\ https://forth-standard.org/standard/core/J
+\ J        -- n   R: 4*sys -- 4*sys
+\ C                  get the second loop index
+CODE J
+SUB #2,PSP      
+MOV TOS,0(PSP)
+MOV 4(RSP),TOS
+SUB 6(RSP),TOS
+MOV @IP+,PC
+ENDCODE
+
+\ https://forth-standard.org/standard/core/UNLOOP
+\ UNLOOP   --   R: sys1 sys2 --  drop loop parms
+CODE UNLOOP
+ADD #4,RSP
+MOV @IP+,PC
+ENDCODE
+
+\ https://forth-standard.org/standard/core/LEAVE
+\ LEAVE    --    L: -- adrs
+CODE LEAVE
+MOV &DP,W               \ compile three words
+MOV #UNLOOP,0(W)        \ [HERE] = UNLOOP
+MOV #.,2(W)             \ DOT + 8 = BRAN
+ADD #8,2(W)             \ [HERE+2] = BRAN
+ADD #6,&DP              \ [HERE+4] = After LOOP adr
+ADD #2,&LEAVEPTR
+ADD #4,W
+MOV &LEAVEPTR,X
+MOV W,0(X)              \ leave HERE+4 on LEAVEPTR stack
+MOV @IP+,PC
+ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/RECURSE
+\ C RECURSE  --      recurse to current definition (compile current definition)
+CODE RECURSE
+MOV &DP,X
+MOV &LAST_CFA,0(X)
+ADD #2,&DP
+MOV @IP+,PC
+ENDCODE IMMEDIATE
+
 \ https://forth-standard.org/standard/core/SOURCE
 \ SOURCE    -- adr u    of current input buffer
 CODE SOURCE
@@ -542,16 +773,6 @@ MOV &SOURCE_ORG,0(PSP)
 MOV @IP+,PC
 ENDCODE
 
-\ https://forth-standard.org/standard/core/toIN
-\ C >IN     -- a-addr       holds offset in input stream
-TOIN CONSTANT >IN
-
-[UNDEFINED] PAD [IF]
-\ https://forth-standard.org/standard/core/PAD
-\  PAD           --  addr
-PAD_ORG CONSTANT PAD
-[THEN]
-
 RST_HERE
 
 [THEN]
diff --git a/MSP430-FORTH/CHNGBAUD.4th b/MSP430-FORTH/CHNGBAUD.4th
deleted file mode 100644 (file)
index e9a122f..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-
-; ------------
-; CHNGBAUD.4th
-; ------------
-
-PWR_HERE
-
-: BAD_MHz
-    1 ABORT"  only for 1,4,8,16,24 MHz MCLK!"
-;
-
-: MCLK.
-0 1000 UM/MOD .
-;
-
-: BAD_SPEED
-SPACE 27 EMIT ." [7m"
-." with MCLK = " MCLK. 1 ABORT" MHz? don't dream! "
-;
-
-: <> = 0= ;
-
-: CHNGBAUD
-PWR_STATE
-$1806 @ >R
-." target MCLK = " R@ MCLK. ." MHz" CR
-."    choose your baudrate:" CR
-."    0 --> 6 MBds" CR
-."    1 --> 5 MBds" CR
-."    2 --> 4 MBds" CR
-."    3 --> 2457600 Bds" CR
-."    4 --> 921600 Bds" CR
-."    5 --> 460800 Bds" CR
-."    6 --> 230400 Bds" CR
-."    7 --> 115200 Bds" CR
-."    other --> abort" CR
-."    your choice: "
-KEY
-
-#48 - ?DUP 0=
-IF  ." 6 MBds"
-    R@ #24000 <
-    IF  R@ BAD_SPEED
-    THEN
-    R@ #24000 <>
-    IF  BAD_MHz
-    THEN                
-    $4
-    $0
-ELSE 1 - ?DUP 0=
-    IF  ." 5 MBds"
-        R@ #16000 <
-        IF  R@ BAD_SPEED
-        THEN
-        R@ #16000 =
-        IF  $3
-            $2100
-        ELSE R@ #24000 <>
-            IF  BAD_MHz
-            THEN
-            $4
-            $EE00
-        THEN
-    ELSE 1 - ?DUP 0=
-        IF  ." 4 MBds"
-            R@ #16000 <
-            IF  R@ BAD_SPEED
-            THEN
-            R@ #16000 =
-                IF  $4
-                    $0
-                ELSE R@ #24000 <>
-                    IF  BAD_MHz
-                    THEN
-                    $6
-                    $0
-                THEN
-        ELSE 1 - ?DUP 0=
-            IF  ." 2457600 Bds"
-                R@ #8000 <
-                IF  R@ BAD_SPEED
-                THEN
-                R@ #8000 =
-                IF  $3
-                    $4400
-                ELSE R@ #16000 =
-                    IF  $6
-                        $AA00
-                    ELSE R@ #24000 <>
-                        IF  BAD_MHz
-                        THEN
-                        $9
-                        $DD00
-                    THEN
-                THEN
-            ELSE 1 - ?DUP 0=
-                IF  ." 921600 Bds"
-                    R@ #4000 <
-                    IF  R@ BAD_SPEED
-                    THEN
-                    R@ #4000 =
-                    IF  4
-                        $4900
-                    ELSE
-                        R@ #8000 =
-                        IF  8
-                            $D600
-                        ELSE R@ #16000 =
-                            IF  $11
-                                $4A00
-                            ELSE R@ #24000 <>
-                                IF  BAD_MHz
-                                THEN
-                                $1
-                                $00A1
-                            THEN
-                        THEN
-                    THEN
-                ELSE 1 - ?DUP 0=
-                    IF  ." 460800 Bds"
-                        R@ #4000 <
-                        IF  R@ BAD_SPEED
-                        THEN
-                        R@ #4000  =
-                        IF  8
-                            $D600
-                        ELSE
-                            R@ #8000  =
-                            IF  17
-                                $4A00
-                            ELSE R@ #16000 =
-                                IF  2
-                                    $BB21
-                                ELSE R@ #24000 <>
-                                    IF  BAD_MHz
-                                    THEN
-                                    6
-                                    $0001
-                                THEN
-                            THEN
-                        THEN
-                    ELSE 1 - ?DUP 0=
-                        IF  ." 230400 Bds"
-                            R@ #1000 <
-                            IF  R@ BAD_SPEED
-                            THEN
-                            R@ #1000 =
-                            IF  4
-                                $4900
-                            ELSE
-                                R@ #4000  =
-                                IF  17
-                                    $4A00
-                                ELSE
-                                    R@ #8000  =
-                                    IF  2
-                                        $BB21
-                                    ELSE R@ #16000 =
-                                        IF  4
-                                            $5551
-                                        ELSE R@ #24000 <>
-                                            IF  BAD_MHz
-                                            THEN
-                                            3
-                                            $0241
-                                        THEN
-                                    THEN
-                                THEN
-                            THEN
-                        ELSE 1 - ?DUP 0=
-                            IF  ." 115200 Bds"
-                                R@ #1000  =
-                                IF  8
-                                    $D600
-                                ELSE
-                                    R@ #4000  =
-                                    IF  2
-                                        $BB21
-                                    ELSE
-                                        R@ #8000  =
-                                        IF  4
-                                            $5551
-                                        ELSE R@ #16000 =
-                                            IF  8
-                                                $F7A1
-                                            ELSE R@ #24000 <>
-                                                IF  BAD_MHz
-                                                THEN
-                                                $0D
-                                                $4901
-                                            THEN
-                                        THEN
-                                    THEN
-                                THEN
-                            ELSE
-                                ." abort" CR ABORT
-                            THEN
-                        THEN
-                    THEN
-                THEN
-            THEN
-        THEN
-    THEN
-THEN
-$1804 !
-$1802 !
-R> DROP
-CR ."    Change baudrate in Teraterm, save its setup then reset target."
-;
-ECHO
-CHNGBAUD 
index 8abe6b2..f00d2d5 100644 (file)
 
 PWR_STATE
 
+[UNDEFINED] CONSTANT [IF]
+\ https://forth-standard.org/standard/core/CONSTANT
+\ CONSTANT <name>     n --                      define a Forth CONSTANT 
+: CONSTANT 
+DEFER
+HI2LO
+MOV @RSP+,IP
+MOV #DOCON,-4(W)        \   CFA = DOCON
+MOV TOS,-2(W)           \   PFA = n
+MOV @PSP+,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] BL [IF]
+\ https://forth-standard.org/standard/core/BL
+\ BL      -- char            an ASCII space
+#32 CONSTANT BL
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+\ https://forth-standard.org/standard/core/SPACE
+\ SPACE   --               output a space
+: SPACE
+BL EMIT ;
+[THEN]
+
+[UNDEFINED] R@ [IF]
+\ https://forth-standard.org/standard/core/RFetch
+\ R@    -- x     R: x -- x   fetch from return stack
+CODE R@
+SUB #2,PSP
+MOV TOS,0(PSP)
+MOV @RSP,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] < [IF]
+\ https://forth-standard.org/standard/core/less
+\ <      n1 n2 -- flag        test n1<n2, signed
+CODE <
+    SUB @PSP+,TOS   \ 1 TOS=n2-n1
+    S< ?GOTO FW1    \ 2 signed
+    0<> IF          \
+BW1     MOV #-1,TOS \ 1 flag Z = 0
+    THEN
+    MOV @IP+,PC
+ENDCODE
+
+\ https://forth-standard.org/standard/core/more
+\ >     n1 n2 -- flag         test n1>n2, signed
+CODE >
+    SUB @PSP+,TOS   \ 2 TOS=n2-n1
+    S< ?GOTO BW1    \ 2 --> +5
+FW1 AND #0,TOS      \ 1 flag Z = 1
+    MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] UM/MOD [IF]
+\ https://forth-standard.org/standard/core/UMDivMOD
+\ UM/MOD   udlo|udhi u1 -- r q   unsigned 32/16->r16 q16
+CODE UM/MOD
+    PUSH #DROP      \
+    MOV #<#,X       \ X = addr of <#
+    ADD #8,X        \ X = addr of MUSMOD
+    MOV X,PC        \ execute MUSMOD then RET to DROP
+ENDCODE
+[THEN]
+
 : MCLK.
 0 1000 UM/MOD .
 ;
index d6c9a4d..afc6661 100644 (file)
 \ ASSEMBLER conditionnal usage with IF UNTIL WHILE  S<  S>=  U<   U>=  0=  0<>  0>=
 \ ASSEMBLER conditionnal usage with ?JMP ?GOTO      S<  S>=  U<   U>=  0=  0<>  0<
 
-: DEFINED! ECHO 1 ABORT" already loaded!" ;
-
-[DEFINED] {CORDIC} [IF] DEFINED!
-
-[ELSE]
 
 PWR_STATE
 
+[UNDEFINED] {CORDIC} [IF] 
+
 MARKER {CORDIC}
 
 [UNDEFINED] {FIXPOINT} [IF] \ define words to display angle as Q15.16 number.
 
+[UNDEFINED] DABS [IF] \
+\ https://forth-standard.org/standard/double/DABS
+\ DABS     d1 -- |d1|     absolute value
+CODE DABS
+MOV #1-,X
+ADD #4,X
+MOV X,PC
+ENDCODE
+[THEN]
+
+
 \ https://forth-standard.org/standard/core/HOLDS
 \ Adds the string represented by addr u to the pictured numeric output string
 \ compilation use: <# S" string" HOLDS #>
@@ -47,7 +55,7 @@ MARKER {CORDIC}
 \ (2 supplementary bytes are room for sign - and decimal point)
 \ C HOLDS    addr u --
 CODE HOLDS
-            MOV @PSP+,X     \ 2
+BW1         MOV @PSP+,X     \ 2
             ADD TOS,X       \ 1 src
             MOV &HP,Y       \ 3 dst
 BEGIN       SUB #1,X        \ 1 src-1
@@ -67,7 +75,7 @@ CODE F#S
             MOV TOS,T               \                   T = limit
             MOV #0,S                \                   S = count
 BEGIN       MOV @PSP,&MPY           \                   Load 1st operand
-            MOV &BASE,&OP2          \                   Load 2nd operand
+            MOV &BASEADR,&OP2          \                   Load 2nd operand
             MOV &RES0,0(PSP)        \ -- Qhi RESlo x        low result on stack
             MOV &RES1,TOS           \ -- Qhi RESlo REShi    high result in TOS
             CMP #10,TOS             \                   digit to char
@@ -80,13 +88,13 @@ BEGIN       MOV @PSP,&MPY           \                   Load 1st operand
             MOV T,TOS               \ -- Qhi 0 limit
             SUB #2,PSP              \ -- Qhi 0 x len
             MOV #HOLDS_ORG,0(PSP)   \ -- Qhi 0 addr len
-            JMP HOLDS
+            GOTO BW1                \ JMP HOLDS
 ENDCODE
 
 CODE F.             \ display a Q15.16 number with 4/5/16 digits after comma
 MOV TOS,S           \ S = sign
 MOV #4,T            \ T = 4     preset 4 digits for base 16 and by default
-MOV &BASE,W
+MOV &BASEADR,W
 CMP ##10,W
 0= IF               \           if base 10
     ADD #1,T        \ T = 5     set 5 digits
@@ -103,7 +111,7 @@ LO2HI
     $2C HOLD        \                   $2C = char ','
     #S              \ -- 0 0
     R> SIGN #>      \ -- addr len       R-- IP
-    TYPE SPACE      \ --         
+    TYPE $20 EMIT   \ --         
 ;
 
 [THEN] \ end of [UNDEFINED] {FIXPOINT}
@@ -184,7 +192,7 @@ MOV #0,Y            \ Y = Yi
         RRA S       \ (Xi >> 1)
         RRA T       \ (Yi >> 1)
         ADD #1,W
-    FW1 CMP IP,W    \ W = i ?
+FW1     CMP IP,W    \ W = i ?
     0= UNTIL        \ loop back if W < i
     ADD W,W         \ W = 2i = T_SCALE displacement
     CMP #0,TOS      \ TOS = z
@@ -283,7 +291,7 @@ MOV #0,TOS          \ init z=0
         RRA S       \ (X >> i)
         RRA T       \ (Y >> i)
         ADD #1,W    \
-    FW1 CMP IP,W    \ W = i ?
+FW1     CMP IP,W    \ W = i ?
     0= UNTIL        \ 6~ loop
     ADD W,W         \ W = 2i = T_SCALE displacement
     CMP #0,Y        \ Y sign ?
@@ -296,11 +304,11 @@ MOV #0,TOS          \ init z=0
         ADD S,Y     \ Yi+1 = Yi + ( Xi >> i)
         SUB T_ARCTAN(W),TOS
     THEN
-    CMP #0,Y        \ if Y = 0 quit loop
-    0<> WHILE       \ if Y = 0 goto THEN
-    CMP #14,IP
- 0= UNTIL
-    THEN
+    CMP #0,Y        \
+    0<> WHILE       \ if Y = 0 quit loop ---+
+    CMP #14,IP      \                       |
+ 0= UNTIL           \                       |
+    THEN            \ <---------------------+
 \ multiply x by CORDIC gain
 MOV X,&MPY              \ 3     Load 1st operand
 MOV T_SCALE(W),&OP2     \ 3     CORDIC Gain * 65536
@@ -332,9 +340,21 @@ RST_HERE
 
 [THEN] 
 
-: 2000CORDIC
-1000 0 DO
-    POL2REC REC2POL     \ 1000 loops
+[UNDEFINED] ROT [IF] \
+\ https://forth-standard.org/standard/core/ROT
+\ ROT    x1 x2 x3 -- x2 x3 x1
+CODE ROT
+MOV @PSP,W          \ 2 fetch x2
+MOV TOS,0(PSP)      \ 3 store x3
+MOV 2(PSP),TOS      \ 3 fetch x1
+MOV W,2(PSP)        \ 3 store x2
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+: 1000CORDIC
+500 0 DO
+    POL2REC REC2POL     \ 2 CORDIC op. * 500 loops = 1000 CORDIC
 LOOP 
 ;
 
@@ -365,10 +385,10 @@ ECHO
 1000 -1000 REC2POL F. .     ; phase module --> 
 16000 8000 REC2POL F. .     ; phase module --> 
 16000 -8000 REC2POL F. .    ; phase module --> 
-16000 0 REC2POL F. .        ; phase module -->
-0 16000 REC2POL F. .        ; phase module -->
-\16384 -8192 REC2POL F. .    ; --> abort
-\0 0 REC2POL F. .            ; --> abort
+16000 0 REC2POL F. .        ; phase module --> 
+0 16000 REC2POL F. .        ; phase module --> 
+\ 16384 -8192 REC2POL F. .    ; --> abort
+\ 0 0 REC2POL F. .            ; --> abort
 
 
 10000 89,0 POL2REC REC2POL   ROT . F. 
@@ -382,15 +402,15 @@ ECHO
 10000 7,125 POL2REC REC2POL  ROT . F. 
 10000 1,0 POL2REC REC2POL    ROT . F. 
 
-10000 89,0  2000CORDIC  ROT . F.
-10000 75,0  2000CORDIC  ROT . F.
-10000 60,0  2000CORDIC  ROT . F.
-10000 45,0  2000CORDIC  ROT . F.
-10000 30,0  2000CORDIC  ROT . F.
-10000 26,565 2000CORDIC ROT . F.
-10000 15,0 2000CORDIC   ROT . F.
-10000 14,036 2000CORDIC ROT . F.
-10000 7,125 2000CORDIC  ROT . F.
-10000 1,0 2000CORDIC    ROT . F.
+10000 89,0   1000CORDIC      ROT . F.
+10000 75,0   1000CORDIC      ROT . F.
+10000 60,0   1000CORDIC      ROT . F.
+10000 45,0   1000CORDIC      ROT . F.
+10000 30,0   1000CORDIC      ROT . F.
+10000 26,565 1000CORDIC      ROT . F.
+10000 15,0   1000CORDIC      ROT . F.
+10000 14,036 1000CORDIC      ROT . F.
+10000 7,125  1000CORDIC      ROT . F.
+10000 1,0    1000CORDIC      ROT . F.
 
 
index abe9c36..e58005e 100644 (file)
@@ -3,21 +3,21 @@ PWR_STATE
 
 : ESC #27 EMIT ;
 
-: ANSCOMPNOTFOUND
+: PAGEUP
 ECHO
 41              \ number of terminal lines -1  
 0 DO CR LOOP    \ don't erase any line of source
 ESC ." [1J"     \ erase up (41 empty lines)
 ESC ." [H"      \ cursor home
+;
+
+: ANSCOMPNOTFOUND
+PAGEUP
 1 ABORT" {ANS_COMP} word set not found!"
 ;
 
 : CORETESTSUCCESS
-ECHO
-41              \ number of terminal lines -1 
-0 DO CR LOOP    \ don't erase any line of source
-ESC ." [1J"     \ erase up (41 empty lines)
-ESC ." [H"      \ cursor home
+PAGEUP
 1 ABORT" CORE tests success!"
 ;
 
@@ -192,10 +192,10 @@ T{ MSB 1 RSHIFT 2* -> MSB }T
 
 \ ------------------------------------------------------------------------
 TESTING COMPARISONS: 0= = 0< < > U< MIN MAX
-0 INVERT            CONSTANT MAX-UINT
-0 INVERT 1 RSHIFT       CONSTANT MAX-INT
+0 INVERT                    CONSTANT MAX-UINT
+0 INVERT 1 RSHIFT           CONSTANT MAX-INT
 0 INVERT 1 RSHIFT INVERT    CONSTANT MIN-INT
-0 INVERT 1 RSHIFT       CONSTANT MID-UINT
+0 INVERT 1 RSHIFT           CONSTANT MID-UINT
 0 INVERT 1 RSHIFT INVERT    CONSTANT MID-UINT+1
 
 0S CONSTANT <FALSE>
diff --git a/MSP430-FORTH/FF_SPECS.4th b/MSP430-FORTH/FF_SPECS.4th
deleted file mode 100644 (file)
index 1a25266..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-
-; ------------------
-; FF_SPECS.4th
-; ------------------
-
-; display all FastForth compilation options
-
-
-WIPE
-
-0 CONSTANT CASE IMMEDIATE
-
-: OF
-1+     
->R     
-POSTPONE OVER POSTPONE =
-POSTPONE IF    
-POSTPONE DROP  
-R>     
-; IMMEDIATE 
-
-: ENDOF
->R     
-POSTPONE ELSE 
-R>     
-; IMMEDIATE 
-
-: ENDCASE
-POSTPONE DROP
-0 DO 
-    POSTPONE THEN 
-LOOP 
-; IMMEDIATE 
-
-: BS 8 EMIT ;
-
-: ESC #27 EMIT ;
-
-: ADDONS
-ESC ." [7m"
-." KERNEL OPTIONS:"
-ESC ." [0m"
-$1812 @
-
-      DUP 0< IF CR ." LF XTAL" THEN
-DUP + DUP 0< IF CR ." TERMINAL5WIRES" THEN
-DUP + DUP 0< IF CR ." TERMINAL4WIRES" THEN
-DUP + DUP 0< IF CR ." TERMINAL3WIRES" THEN
-DUP + DUP 0< IF CR ." HALFDUPLEX_TERMINAL" THEN
-DUP + DUP 0< IF CR ." PROMPT" THEN
-DUP + DUP 0< IF CR ." BOOTLOADER" THEN
-DUP + DUP 0< IF CR ." SD_CARD_READ_WRITE" THEN
-DUP + DUP 0< IF CR ." SD_CARD_LOADER" THEN
-DUP + DUP 0< IF CR ." FIXPOINT_INPUT" THEN
-DUP + DUP 0< IF CR ." DOUBLE_INPUT" THEN
-DUP + DUP 0< IF CR ." VOCABULARY_SET" THEN
-DUP + DUP 0< IF CR ." NONAME" THEN
-DUP + DUP 0< IF CR ." EXTENDED_ASM" THEN
-DUP + DUP 0< IF CR ." ASSEMBLER" THEN
-DUP + DUP 0< IF CR ." CONDCOMP" THEN
-
-0< IF
-    CR ESC ." [7m"
-    ." OTHER OPTIONS:"
-    ESC ." [0m"
-    [DEFINED] {ANS_COMP} [IF] CR ." ANS_COMPLEMENT" [THEN]
-    [DEFINED] {TOOLS}    [IF] CR ." UTILITY" [THEN]
-    [DEFINED] {FIXPOINT} [IF] CR ." FIXPOINT" [THEN]
-    [DEFINED] {SD_TOOLS} [IF] CR ." SD_TOOLS" [THEN]
-THEN
-;
-
-: specs
-PWR_STATE
-HERE
-ECHO
-
-42
-0 DO CR LOOP
-
-ESC ." [1J"
-ESC ." [H"
-ESC ." [7m"
-
-$1A04 @
-
-CR ." FastForth V" $1810 @ U. ." for MSP430FR"
-CASE
-    $830C     OF      ." 2355,"   $8000   ENDOF
-    $8240     OF      ." 2433,"   $C400   ENDOF
-    $81F0     OF      ." 4133,"   $C400   ENDOF
-    $8103     OF      ." 5739,"   $C200   ENDOF
-    $8102     OF      ." 5738,"   $C200   ENDOF
-    $8169     OF      ." 5969,"   $4400   ENDOF
-    $8160     OF      ." 5948,"   $4400   ENDOF
-    $82A1     OF      ." 5994,"   $4000   ENDOF
-    $81A8     OF      ." 6989,"   $4400   ENDOF
-
-    ABORT" xxxx <-- unrecognized device!"
-ENDCASE
-
-SPACE $1806 @ 0 1000 UM/MOD U. 
-?DUP IF  BS ." ," U.
-THEN ." MHz, "
-
-$1800 @ U. BS ." -Entry Vocabularies, "
-
-- U. ." bytes, "
-
-$FF80 HERE - U. ." bytes free" CR
-
-ESC ." [0m"
-
-CR ADDONS CR
-;
-
-ECHO specs
index 739b7f9..436aee7 100644 (file)
 \ then select your TARGET when asked.
 \
 
-WIPE \ remove all downloaded word set
+RST_STATE
 
-0 CONSTANT CASE IMMEDIATE \ -- #of-1 
+[UNDEFINED] OVER [IF]
+\ https://forth-standard.org/standard/core/OVER
+\ OVER    x1 x2 -- x1 x2 x1
+CODE OVER
+MOV TOS,-2(PSP)     \ 3 -- x1 (x2) x2
+MOV @PSP,TOS        \ 2 -- x1 (x2) x1
+SUB #2,PSP          \ 1 -- x1 x2 x1
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+: CASE 0 ; IMMEDIATE \ -- #of-1 
 
 : OF \ #of-1 -- orgOF #of 
 1+                         \ count OFs 
@@ -40,14 +51,15 @@ POSTPONE DROP
 LOOP 
 ; IMMEDIATE 
 
-: BS 8 EMIT ;   \ 8 EMIT = BackSpace EMIT
-
 : ESC #27 EMIT ;
 
-[UNDEFINED] PAD [IF]
-\ https://forth-standard.org/standard/core/PAD
-\  PAD           --  addr
-PAD_ORG CONSTANT PAD
+[UNDEFINED] + [IF]
+\ https://forth-standard.org/standard/core/Plus
+\ +       n1/u1 n2/u2 -- n3/u3     add n1+n2
+CODE +
+ADD @PSP+,TOS
+MOV @IP+,PC
+ENDCODE
 [THEN]
 
 [UNDEFINED] AND [IF]
@@ -60,22 +72,75 @@ ENDCODE
 [THEN]
 
 
+[UNDEFINED] ROT [IF]
+\ https://forth-standard.org/standard/core/ROT
+\ ROT    x1 x2 x3 -- x2 x3 x1
+CODE ROT
+MOV @PSP,W          \ 2 fetch x2
+MOV TOS,0(PSP)      \ 3 store x3
+MOV 2(PSP),TOS      \ 3 fetch x1
+MOV W,2(PSP)        \ 3 store x2
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] C@ [IF]
+\ https://forth-standard.org/standard/core/CFetch
+\ C@     c-addr -- char   fetch char from memory
+CODE C@
+MOV.B @TOS,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+\ https://forth-standard.org/standard/core/SPACES
+\ SPACES   n --            output n spaces
+CODE SPACES
+CMP #0,TOS
+0<> IF
+    PUSH IP
+    BEGIN
+        LO2HI
+        $20 EMIT
+        HI2LO
+        SUB #2,IP 
+        SUB #1,TOS
+    0= UNTIL
+    MOV @RSP+,IP
+THEN
+MOV @PSP+,TOS           \ --         drop n
+NEXT              
+ENDCODE
+[THEN]
+
+[UNDEFINED] UM/MOD [IF]
+\ https://forth-standard.org/standard/core/UMDivMOD
+\ UM/MOD   udlo|udhi u1 -- r q   unsigned 32/16->r16 q16
+CODE UM/MOD
+    PUSH #DROP      \
+    MOV #<#,X       \ X = addr of <#
+    ADD #8,X        \ X = addr of MUSMOD
+    MOV X,PC        \ execute MUSMOD then RET to DROP
+ENDCODE
+[THEN]
+
 [UNDEFINED] WORDS [IF]
 \ https://forth-standard.org/standard/tools/WORDS
 \ list all words of vocabulary first in CONTEXT.
 : WORDS                         \ --            
 CR 
-CONTEXT @ PAD                   \ -- VOC_BODY PAD                  MOVE all threads of VOC_BODY in PAD
+CONTEXT @ PAD_ORG               \ -- VOC_BODY PAD                  MOVE all threads of VOC_BODY in PAD_ORG
 INI_THREAD @ DUP +              \ -- VOC_BODY PAD THREAD*2
-MOVE                            \ -- vocabumary entries are copied in PAD
+MOVE                            \ -- vocabumary entries are copied in PAD_ORG
 BEGIN                           \ -- 
     0 DUP                       \ -- ptr=0 MAX=0                
     INI_THREAD @ DUP + 0        \ -- ptr=0 MAX=0 THREADS*2 0
         DO                      \ -- ptr MAX            I =  PAD_ptr = thread*2
-        DUP I PAD + @           \ -- ptr MAX MAX NFAx
+        DUP I PAD_ORG + @       \ -- ptr MAX MAX NFAx
             U< IF               \ -- ptr MAX            if MAX U< NFAx
                 DROP DROP       \ --                    drop ptr and MAX
-                I DUP PAD + @   \ -- new_ptr new_MAX
+                I DUP PAD_ORG + @   \ -- new_ptr new_MAX
             THEN                \ 
         2 +LOOP                 \ -- ptr MAX
     ?DUP                        \ -- ptr MAX MAX | -- ptr 0 (all threads in PAD = 0)
@@ -83,7 +148,7 @@ WHILE                           \ -- ptr MAX                    replace it by it
     DUP                         \ -- ptr MAX MAX
     2 - @                       \ -- ptr MAX [LFA]
     ROT                         \ -- MAX [LFA] ptr
-    PAD +                       \ -- MAX [LFA] thread
+    PAD_ORG +                   \ -- MAX [LFA] thread
     !                           \ -- MAX                [LFA]=new_NFA updates PAD+ptr
     DUP                         \ -- MAX MAX
     COUNT $7F AND               \ -- MAX addr count (with suppr. of immediate bit)
@@ -95,48 +160,49 @@ DROP                            \ ptr --
 ;                               \ all threads in PAD are filled with 0
 [THEN]
 
-: ADDONS
+: ADDONS            \ see "compute value of FORTHADDON" in file \inc\ThingsInFirst.inc
 ESC ." [7m"         \ escape sequence to set reverse video
 ." KERNEL OPTIONS:" \ in reverse video
 ESC ." [0m"         \ escape sequence to clear reverse video
 KERNEL_ADDON @                                  \ see ThingsInFirst.inc
 
-      DUP 0< IF CR ." LF XTAL" THEN
-DUP + DUP 0< IF CR ." TERMINAL5WIRES" THEN      \ 'DUP +' = one shift left
-DUP + DUP 0< IF CR ." TERMINAL4WIRES" THEN
-DUP + DUP 0< IF CR ." TERMINAL3WIRES" THEN
-DUP + DUP 0< IF CR ." HALFDUPLEX_TERMINAL" THEN
-DUP + DUP 0< IF CR ." PROMPT" THEN
+      DUP 0< IF CR ." 32.768kHz XTAL" THEN
+DUP + DUP 0< IF DUP + CR ." HARDWARE (RTS/CTS) TERMINAL"     \ 'DUP +' = one shift left
+             ELSE DUP + DUP 0< IF CR ." HARDWARE (RTS) TERMINAL" THEN
+             THEN
+DUP + DUP 0< IF CR ." XON/XOFF TERMINAL" THEN
+DUP + DUP 0< IF CR ." HALF-DUPLEX TERMINAL" THEN
+DUP + DUP 0< IF CR ." ASM DATA ACCESS BEYOND $FFFF" THEN
 DUP + DUP 0< IF CR ." BOOTLOADER" THEN
-DUP + DUP 0< IF CR ." SD_CARD_READ_WRITE" THEN
-DUP + DUP 0< IF CR ." SD_CARD_LOADER" THEN
-DUP + DUP 0< IF CR ." FIXPOINT_INPUT" THEN
-DUP + DUP 0< IF CR ." DOUBLE_INPUT" THEN
-DUP + DUP 0< IF CR ." VOCABULARY_SET" THEN
+DUP + DUP 0< IF CR ." SD_CARD READ/WRITE" THEN
+DUP + DUP 0< IF CR ." SD_CARD LOADER" THEN
+DUP + DUP 0< IF CR ." FIXPOINT INPUT" THEN
+DUP + DUP 0< IF CR ." DOUBLE INPUT" THEN
+DUP + DUP 0< IF CR ." VOCABULARY SET" THEN
 DUP + DUP 0< IF CR ." NONAME" THEN
-DUP + DUP 0< IF CR ." EXTENDED_ASM" THEN
+DUP + DUP 0< IF CR ." EXTENDED ASSEMBLER" THEN
 DUP + DUP 0< IF CR ." ASSEMBLER" THEN
-DUP + DUP 0< IF CR ." CONDCOMP" THEN
+DUP + DUP 0< IF CR ." CONDITIONNAL COMPILATION" THEN
 
 0< IF                   \ true if CONDCOMP add-on
     CR ESC ." [7m"      \ escape sequence to set reverse video
     ." OTHER OPTIONS:"  \ in reverse video
     ESC ." [0m"         \ escape sequence to clear reverse video
-    [DEFINED] {ANS_COMP} [IF] CR ." ANS_COMPLEMENT" [THEN]
-    [DEFINED] {TOOLS}    [IF] CR ." UTILITY" [THEN]
-    [DEFINED] {FIXPOINT} [IF] CR ." FIXPOINT" [THEN]
-    [DEFINED] {SD_TOOLS} [IF] CR ." SD_TOOLS" [THEN]
+    CR ." none"
+    ESC ." [G"          \ cursor row 0
+    [DEFINED] {ANS_COMP} [IF] ." ANS_COMPLEMENT" CR [THEN]
+    [DEFINED] {TOOLS}    [IF] ." UTILITY" CR [THEN]
+    [DEFINED] {FIXPOINT} [IF] ." FIXPOINT" CR [THEN]
+    [DEFINED] {SD_TOOLS} [IF] ." SD_TOOLS" CR [THEN]
     CR CR
     [DEFINED] VOCABULARY [IF]
-    CR ESC ." [7m"      \ escape sequence to set reverse video
+    ESC ." [7m"      \ escape sequence to set reverse video
     ." ASSEMBLER word set"
     ESC ." [0m"         \ escape sequence to clear reverse video
-        ALSO ASSEMBLER WORDS CR PREVIOUS
+    ALSO ASSEMBLER WORDS CR PREVIOUS
     [THEN]
-    CR ESC ." [7m"      \ escape sequence to set reverse video
-    ." FORTH word set"
-    ESC ." [0m"         \ escape sequence to clear reverse video
-    WORDS
+ESC ." [7m" ." FORTH word set" ESC ." [0m"
+WORDS                                           \ Forth words set
 THEN
 ;
 
@@ -145,19 +211,22 @@ PWR_STATE       \ before free bytes computing, remove all created words
 HERE            \ to compute bytes
 ECHO
 
-41              \ number of terminal lines   
+41              \ number of terminal lines -1  
 0 DO CR LOOP    \ don't erase any line of source
 
-ESC ." [1J"     \ erase up (42 empty lines)
+ESC ." [1J"     \ erase up (41 empty lines)
 ESC ." [H"      \ cursor home
 ESC ." [7m"     \ escape sequence to set reverse video
 
 DEVICEID @      \ value kept in TLV area
 
-CR ." FastForth V" VERSION @ U. ." for MSP430FR"
+CR ." FastForth V" VERSION @                    \ FastForth version,
+0 <# #  8 HOLD # 46 HOLD #S #> TYPE $20 EMIT
+." for MSP430FR"                                \ target,
 CASE
 \ device ID   of MSP430FRxxxx    MAIN org
     $830C     OF      ." 2355,"   $8000   ENDOF
+    $8328     OF      ." 2476,"   $8000   ENDOF
     $8240     OF      ." 2433,"   $C400   ENDOF
     $81F0     OF      ." 4133,"   $C400   ENDOF
     $8103     OF      ." 5739,"   $C200   ENDOF
@@ -169,21 +238,28 @@ CASE
 \   DevID     OF      ." xxxx,"   $MAIN   ENDOF \ <-- add here your device
 
     ABORT" xxxx <-- unrecognized device!"
-ENDCASE
+ENDCASE $20 EMIT 
+
+['] ['] DUP @ $1287 = IF ." DTC=1," DROP         \ DTC model number,
+                         ELSE 2 + @ $1287 =
+                            IF ." DTC=2,"
+                            ELSE ." DTC=3,"
+                            THEN
+                        THEN $20 EMIT 
 
-SPACE FREQ_KHZ @ 0 1000 UM/MOD U. 
-?DUP IF  BS ." ," U.    \ if remainder
-THEN ." MHz, "          \ MCLK
+INI_THREAD @ U. #8 EMIT ." -Entry word sets, "  \ number of Entry word sets,
 
-INI_THREAD @ U. BS ." -Entry Vocabularies, "
+FREQ_KHZ @ 0 1000 UM/MOD U.                     \ frequency,
+?DUP IF #8 EMIT ." ," U.    \ if remainder
+THEN ." MHz, "              \ MCLK
 
-- U. ." bytes, "        \ HERE - MAIN_ORG
+- U. ." bytes"     \ HERE - MAIN_ORG            \ number of bytes code,
 
-SIGNATURES HERE - U. ." bytes free" CR
+\ ESC ." [0m"
 
-ESC ." [0m"     \ escape sequence to clear reverse video
+CR CR ADDONS                                    \ addons
 
-CR ADDONS
+CR WARM
 ;
 
 ECHO specs \ here FastForth types a (volatile) message with some informations
index 18eb6d0..e54ad04 100644 (file)
 \ ASSEMBLER conditionnal usage with ?JMP ?GOTO      S<  S>=  U<   U>=  0=  0<>  0<
 \
 
-: DEFINED! ECHO 1 ABORT" already loaded!" ;
-
-[DEFINED] {FIXPOINT} [IF] DEFINED!
-
-[ELSE]
-
 PWR_STATE
 
-MARKER {FIXPOINT}
+[UNDEFINED] {FIXPOINT} [IF]
 
+MARKER {FIXPOINT}
 
+[UNDEFINED] + [IF]
+\ https://forth-standard.org/standard/core/Plus
+\ +       n1/u1 n2/u2 -- n3/u3     add n1+n2
+CODE +
+ADD @PSP+,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
 
 [UNDEFINED] HOLDS [IF]
 \ https://forth-standard.org/standard/core/HOLDS
@@ -52,7 +55,7 @@ MARKER {FIXPOINT}
 \ (2 supplementary bytes are room for sign - and decimal point)
 \ C HOLDS    addr u --
 CODE HOLDS
-            MOV @PSP+,X     \ 2
+BW3         MOV @PSP+,X     \ 2
             ADD TOS,X       \ 1 src
             MOV &HP,Y       \ 3 dst
 BEGIN       SUB #1,X        \ 1 src-1
@@ -65,6 +68,16 @@ REPEAT      MOV Y,&HP       \ 3
 ENDCODE
 [THEN]
 
+[UNDEFINED] DABS [IF]
+\ https://forth-standard.org/standard/double/DABS
+\ DABS     d1 -- |d1|     absolute value
+CODE DABS
+MOV #1-,X   \ 2
+ADD #4,X    \ 1
+MOV X,PC    \ 3
+ENDCODE
+[THEN]
+
 CODE F+                     \ add Q15.16 numbers
     ADD @PSP+,2(PSP)        \ -- sumlo  d1hi d2hi
     ADDC @PSP+,TOS          \ -- sumlo sumhi
@@ -78,7 +91,9 @@ CODE F-                     \ substract Q15.16 numbers
     MOV @IP+,PC
 ENDCODE
 
-$1A04 C@ $EF > [IF] ; test tag value MSP430FR413x subfamily without hardware_MPY 
+TLV_ORG 4 + @ $81F3 U<
+$81EF TLV_ORG 4 + @ U< 
+= [IF]   ; MSP430FR413x subfamily without hardware_MPY
 
 CODE F/                         \ Q15.16 / Q15.16 --> Q15.16 result
             PUSHM #4,rDOCOL    
@@ -155,7 +170,7 @@ CODE F#S
             PUSHM #2,TOS            \                   save TOS,IP
             MOV #0,S                \ -- Qhi Qlo x
 BEGIN       PUSH S                  \                   R-- limit IP count
-            MOV &BASE,TOS           \ -- Qhi Qlo base
+            MOV &BASEADR,TOS           \ -- Qhi Qlo base
             LO2HI
             UM*                     \                   u1 u2 -- RESlo REShi
             HI2LO                   \ -- Qhi RESlo digit
@@ -172,7 +187,7 @@ U>= UNTIL
             MOV #0,0(PSP)           \ -- Qhi 0 len
             SUB #2,PSP              \ -- Qhi 0 x len
             MOV #HOLDS_ORG,0(PSP)   \ -- Qhi 0 addr len
-            JMP HOLDS
+            GOTO BW3                \ JMP HOLDS
 ENDCODE
 [THEN]
 
@@ -231,7 +246,7 @@ THEN
         GOTO BW1            \ goto end of F/ to process sign of result
 ENDCODE
 
-[ELSE] \ hardware multiplier
+[ELSE] ; else if hardware multiplier
 
 CODE F/                     \ Q15.16 / Q15.16 --> Q15.16 result
 \ TOS = DVRhi
@@ -306,7 +321,7 @@ CODE F#S
             MOV TOS,T               \                   T = limit
             MOV #0,S                \                   S = count
 BEGIN       MOV @PSP,&MPY           \                   Load 1st operand
-            MOV &BASE,&OP2          \                   Load 2nd operand
+            MOV &BASEADR,&OP2          \                   Load 2nd operand
             MOV &RES0,0(PSP)        \ -- Qhi RESlo x        low result on stack
             MOV &RES1,TOS           \ -- Qhi RESlo REShi    high result in TOS
             CMP #10,TOS             \                   digit to char
@@ -319,7 +334,7 @@ BEGIN       MOV @PSP,&MPY           \                   Load 1st operand
             MOV T,TOS               \ -- Qhi 0 limit
             SUB #2,PSP              \ -- Qhi 0 x len
             MOV #HOLDS_ORG,0(PSP)   \ -- Qhi 0 addr len
-            JMP HOLDS
+            GOTO BW3                \ JMP HOLDS
 ENDCODE
 [THEN]
 
@@ -336,13 +351,13 @@ CODE F*                 \ signed s15.16 multiplication --> s15.16 result
     MOV @IP+,PC
 ENDCODE
 
-[THEN]  \ hardware multiplier
+[THEN]  \ end of hardware multiplier
 
 [UNDEFINED] F. [IF]
 CODE F.             \ display a Q15.16 number with 4/5/16 digits after comma
 MOV TOS,S           \ S = sign
 MOV #4,T            \ T = 4     preset 4 digits for base 16 and by default
-MOV &BASE,W
+MOV &BASEADR,W
 CMP ##10,W
 0= IF               \           if base 10
     ADD #1,T        \ T = 5     set 5 digits
@@ -359,7 +374,7 @@ LO2HI
     $2C HOLD        \                   $2C = char ','
     #S              \ -- 0 0
     R> SIGN #>      \ -- addr len       R-- IP
-    TYPE SPACE      \ --         
+    TYPE $20 EMIT   \ --         
 ;
 
 CODE S>F         \ convert a signed number to a Q15.16 (signed) number
@@ -369,29 +384,24 @@ CODE S>F         \ convert a signed number to a Q15.16 (signed) number
 ENDCODE
 [THEN]
 
-[UNDEFINED] 2@ [IF]
+RST_HERE
 
-\ https://forth-standard.org/standard/core/TwoFetch
-\ 2@    a-addr -- x1 x2    fetch 2 cells ; the lower address will appear on top of stack
-CODE 2@
-SUB #2,PSP
-MOV 2(TOS),0(PSP)
-MOV @TOS,TOS
-NEXT
-ENDCODE
-[THEN] \ of [UNDEFINED] 2@
+[THEN] \ of [UNDEFINED] {FIXPOINT}
 
 [UNDEFINED] 2CONSTANT [IF]
 \ https://forth-standard.org/standard/double/TwoCONSTANT
 : 2CONSTANT \  udlo/dlo/Qlo udhi/dhi/Qhi --         to create double or Q15.16 CONSTANT
 CREATE , ,  \ compile Qhi then Qlo
-DOES> 2@    \ execution part    addr -- Qhi Qlo
+DOES>       \ execution part    addr -- Qhi Qlo
+HI2LO
+SUB #2,PSP
+MOV 2(TOS),0(PSP)
+MOV @TOS,TOS
+MOV @RSP+,IP
+NEXT
+ENDCODE
 ;
-[THEN] \ of [UNDEFINED] 2CONSTANT
-
-RST_HERE
-
-[THEN] \ of [UNDEFINED] {FIXPOINT}
+[THEN]
 
 ECHO
 
@@ -403,11 +413,11 @@ ECHO
 3,14159 2CONSTANT PI
 PI -1,0 F* 2CONSTANT -PI
 
-$10 BASE !  PI F. 
+$10 BASEADR !  PI F. 
            -PI F.
-%10 BASE !  PI F. 
+%10 BASEADR !  PI F. 
            -PI F.
-#10 BASE !  PI F. 
+#10 BASEADR !  PI F. 
            -PI F.
 
 PI 2,0 F* F.      
@@ -441,3 +451,4 @@ PI -2,0 F/ F.
 181,01933598375 -181,01933598375 f* f.
 -181,01933598375 181,01933598375 f* f.
 -181,01933598375 -181,01933598375 f* f.
+
index d4391da..ccaba20 100644 (file)
@@ -3,18 +3,81 @@
 ; ANS_COMP.4th    words complement to pass CORETEST.4TH
 ; -----------------------------------------------------
 
-: DEFINED! ECHO 1 ABORT" already loaded!" ;
-
-[DEFINED] {ANS_COMP} [IF] DEFINED!
-
-[ELSE]
+[UNDEFINED] {ANS_COMP} [IF]
 
 PWR_STATE
 
 MARKER {ANS_COMP}
 
 
-: VALUE 
+[UNDEFINED] VARIABLE [IF]
+
+: VARIABLE 
+DEFER
+HI2LO
+MOV @R1+,R13
+MOV #$1286,-4(R10)
+MOV @R13+,R0
+ENDCODE
+
+[THEN]
+
+[UNDEFINED] CONSTANT [IF]
+: CONSTANT 
+DEFER
+HI2LO
+MOV @R1+,R13
+MOV #$1285,-4(R10)
+MOV R14,-2(R10)
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+$1DBE CONSTANT STATE
+
+[UNDEFINED] BASE [IF]
+$1DDC CONSTANT BASE
+[THEN]
+
+[UNDEFINED] >IN [IF]
+$1DC4 CONSTANT >IN
+[THEN]
+
+[UNDEFINED] PAD [IF]
+$1CE4 CONSTANT PAD
+[THEN]
+
+[UNDEFINED] BL [IF]
+#32 CONSTANT BL
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+: SPACE
+BL EMIT ;
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+CODE SPACES
+CMP #0,R14
+0<> IF
+    PUSH R13
+    BEGIN
+        LO2HI
+        BL EMIT
+        HI2LO
+        SUB #2,R13 
+        SUB #1,R14
+    0= UNTIL
+    MOV @R1+,R13
+THEN
+MOV @R15+,R14
+MOV @R13+,R0              
+ENDCODE
+[THEN]
+
+
+: VALUE
 CREATE ,
 DOES> 
 HI2LO
@@ -32,6 +95,43 @@ BIS #$400,R2
 MOV @R13+,R0
 ENDCODE
 
+: S>D
+    DUP 0<
+;
+
+[UNDEFINED] NIP [IF]
+CODE NIP
+ADD #2,R15
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] C@ [IF]
+CODE C@
+MOV.B @R14,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] C! [IF]
+CODE C!
+MOV.B @R15+,0(R14)
+ADD #1,R15
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] C, [IF]
+CODE C,
+MOV &$1DC6,R10
+MOV.B R14,0(R10)
+ADD #1,&$1DC6
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
 [UNDEFINED] AND [IF]
 CODE AND
 AND @R15+,R14
@@ -53,11 +153,34 @@ MOV @R13+,R0
 ENDCODE
 [THEN]
 
+[UNDEFINED] PLUS [IF]
+CODE +
+ADD @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
 CODE INVERT
 XOR #-1,R14
 MOV @R13+,R0
 ENDCODE
 
+CODE <
+        SUB @R15+,R14
+        S< ?GOTO FW1
+    0<> IF
+BW1     MOV #-1,R14
+    THEN
+        MOV @R13+,R0
+ENDCODE
+
+CODE >
+        SUB @R15+,R14
+        S< ?GOTO BW1
+FW1     AND #0,R14
+        MOV @R13+,R0
+ENDCODE
+
 CODE LSHIFT
             MOV @R15+,R10
             AND #$1F,R14
@@ -107,7 +230,9 @@ RRA R14
 MOV @R13+,R0
 ENDCODE
 
-$1A04 C@ $EF > [IF] ; test tag value MSP430FR413x subfamily without hardware_MPY 
+$1A00 4 + @ $81F3 U<
+$81EF $1A00 4 + @ U< 
+= [IF]   ; MSP430FR413x subfamily without hardware_MPY
 
 CODE M*
 MOV @R15,R12
@@ -137,7 +262,7 @@ THEN
 MOV @R13+,R0
 ENDCODE
 
-[ELSE]              ; MSP430FRxxxx with hardware_MPY
+[ELSE]  ; MSP430FRxxxx with hardware_MPY
 
 CODE UM*
     MOV @R15,&$4C0
@@ -154,6 +279,13 @@ ENDCODE
 
 [THEN]
 
+CODE UM/MOD
+    PUSH #DROP
+    MOV #<#,R9
+    ADD #8,R9
+    MOV R9,R0
+ENDCODE
+
 CODE SM/REM
 MOV R14,R12
 MOV @R15,R11
@@ -239,44 +371,57 @@ M* DROP
 >R M* R> FM/MOD NIP
 ;
 
-: S>D
-    DUP 0<
-;
 
+[UNDEFINED] OVER [IF]
+CODE OVER
+MOV R14,-2(R15)
+MOV @R15,R14
+SUB #2,R15
+MOV @R13+,R0
+ENDCODE
+[THEN]
 
-[UNDEFINED] {DOUBLE} [IF]
+CODE ROT
+MOV @R15,R10
+MOV R14,0(R15)
+MOV 2(R15),R14
+MOV R10,2(R15)
+MOV @R13+,R0
+ENDCODE
 
-CODE 2@
+CODE R@
 SUB #2,R15
-MOV 2(R14),0(R15)
-MOV @R14,R14
+MOV R14,0(R15)
+MOV @R1,R14
 MOV @R13+,R0
 ENDCODE
 
+
+[UNDEFINED] {DOUBLE} [IF]
+
+CODE 2@
+BW1 SUB #2,R15
+    MOV 2(R14),0(R15)
+    MOV @R14,R14
+    MOV @R13+,R0
+ENDCODE
+
 CODE 2!
-MOV @R15+,0(R14)
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
+BW2 MOV @R15+,0(R14)
+    MOV @R15+,2(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
 ENDCODE
 
 : 2VALUE
-CREATE
-, ,
+CREATE , ,
 DOES>
 HI2LO
 MOV @R1+,R13
 BIT #$400,R2
-0= ?JMP 2@ 
+0= ?GOTO BW1 
 BIC #$400,R2
-JMP 2!
-ENDCODE
-
-CODE 2DUP
-SUB #4,R15
-MOV R14,2(R15)
-MOV 4(R15),0(R15)
-MOV @R13+,R0
+GOTO BW2
 ENDCODE
 
 CODE 2DROP
@@ -336,12 +481,13 @@ ADD #2,R14
 MOV @R13+,R0
 ENDCODE
 
+
 : CHAR
     BL WORD 1+ C@
 ;
 
 : [CHAR]
-    CHAR lit lit , ,
+    CHAR POSTPONE LITERAL
 ; IMMEDIATE
 
 CODE +!
@@ -365,6 +511,7 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
+
 CODE HEX
 MOV #$10,&BASE
 MOV @R13+,R0
@@ -387,6 +534,39 @@ COUNT TYPE
 BL $1DB4 !
 ; IMMEDIATE
 
+CODE J
+SUB #2,R15      
+MOV R14,0(R15)
+MOV 4(R1),R14
+SUB 6(R1),R14
+MOV @R13+,R0
+ENDCODE
+
+CODE UNLOOP
+ADD #4,R1
+MOV @R13+,R0
+ENDCODE
+
+CODE LEAVE
+MOV &$1DC6,R10
+MOV #UNLOOP,0(R10)
+MOV #.,2(R10)
+ADD #8,2(R10)
+ADD #6,&$1DC6
+ADD #2,&$1C00
+ADD #4,R10
+MOV &$1C00,R9
+MOV R10,0(R9)
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+
+CODE RECURSE
+MOV &$1DC6,R9
+MOV &$1DBA,0(R9)
+ADD #2,&$1DC6
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+
 CODE SOURCE
 SUB #4,R15
 MOV R14,2(R15)
@@ -395,13 +575,7 @@ MOV &$1DC2,0(R15)
 MOV @R13+,R0
 ENDCODE
 
-$1DC4 CONSTANT >IN
-
-[UNDEFINED] PAD [IF]
-$1CE4 CONSTANT PAD
-[THEN]
-
 RST_HERE
 
 [THEN]
-ECHO
+
index a6a10ac..3ee4f9f 100644 (file)
@@ -5,6 +5,63 @@
 
 PWR_STATE
 
+[UNDEFINED] CONSTANT [IF]
+: CONSTANT 
+DEFER
+HI2LO
+MOV @R1+,R13
+MOV #$1285,-4(R10)
+MOV R14,-2(R10)
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] BL [IF]
+#32 CONSTANT BL
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+: SPACE
+BL EMIT ;
+[THEN]
+
+[UNDEFINED] R@ [IF]
+CODE R@
+SUB #2,R15
+MOV R14,0(R15)
+MOV @R1,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] < [IF]
+CODE <
+    SUB @R15+,R14
+    S< ?GOTO FW1
+    0<> IF
+BW1     MOV #-1,R14
+    THEN
+    MOV @R13+,R0
+ENDCODE
+
+CODE >
+    SUB @R15+,R14
+    S< ?GOTO BW1
+FW1 AND #0,R14
+    MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] UM/MOD [IF]
+CODE UM/MOD
+    PUSH #DROP
+    MOV #<#,R9
+    ADD #8,R9
+    MOV R9,R0
+ENDCODE
+[THEN]
+
 : MCLK.
 0 1000 UM/MOD .
 ;
index 6b2275d..f61fa0e 100644 (file)
@@ -3,20 +3,26 @@
 ; CORDIC.4th
 ; ----------
 
-: DEFINED! ECHO 1 ABORT" already loaded!" ;
-
-[DEFINED] {CORDIC} [IF] DEFINED!
-
-[ELSE]
 
 PWR_STATE
 
+[UNDEFINED] {CORDIC} [IF] 
+
 MARKER {CORDIC}
 
 [UNDEFINED] {FIXPOINT} [IF]
 
+[UNDEFINED] DABS [IF]
+CODE DABS
+MOV #1-,R9
+ADD #4,R9
+MOV R9,R0
+ENDCODE
+[THEN]
+
+
 CODE HOLDS
-            MOV @R15+,R9
+BW1         MOV @R15+,R9
             ADD R14,R9
             MOV &$1DB2,R8
 BEGIN       SUB #1,R9
@@ -35,7 +41,7 @@ CODE F#S
             MOV R14,R11
             MOV #0,R12
 BEGIN       MOV @R15,&$4C0
-            MOV &BASE,&$4C8
+            MOV &$1DDC,&$4C8
             MOV &$4E4,0(R15)
             MOV &$4E6,R14
             CMP #10,R14
@@ -48,13 +54,18 @@ BEGIN       MOV @R15,&$4C0
             MOV R11,R14
             SUB #2,R15
             MOV #$1D90,0(R15)
-            JMP HOLDS
+            GOTO BW1
 ENDCODE
 
+[UNDEFINED] SPACE [IF]
+: SPACE
+$20 EMIT ;
+[THEN]
+
 CODE F.
 MOV R14,R12
 MOV #4,R11
-MOV &BASE,R10
+MOV &$1DDC,R10
 CMP ##10,R10
 0= IF
     ADD #1,R11
@@ -133,7 +144,7 @@ MOV #0,R8
         RRA R12
         RRA R11
         ADD #1,R10
-    FW1 CMP R13,R10
+FW1     CMP R13,R10
     0= UNTIL
     ADD R10,R10
     CMP #0,R14
@@ -212,7 +223,7 @@ MOV #0,R14
         RRA R12
         RRA R11
         ADD #1,R10
-    FW1 CMP R13,R10
+FW1     CMP R13,R10
     0= UNTIL
     ADD R10,R10
     CMP #0,R8
@@ -255,8 +266,18 @@ RST_HERE
 
 [THEN] 
 
-: 2000CORDIC
-1000 0 DO
+[UNDEFINED] ROT [IF]
+CODE ROT
+MOV @R15,R10
+MOV R14,0(R15)
+MOV 2(R15),R14
+MOV R10,2(R15)
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+: 1000CORDIC
+500 0 DO
     POL2REC REC2POL
 LOOP 
 ;
@@ -285,8 +306,8 @@ ECHO
 1000 -1000 REC2POL F. .     ; phase module --> 
 16000 8000 REC2POL F. .     ; phase module --> 
 16000 -8000 REC2POL F. .    ; phase module --> 
-16000 0 REC2POL F. .        ; phase module -->
-0 16000 REC2POL F. .        ; phase module -->
+16000 0 REC2POL F. .        ; phase module --> 
+0 16000 REC2POL F. .        ; phase module --> 
 
 
 10000 89,0 POL2REC REC2POL   ROT . F. 
@@ -300,15 +321,15 @@ ECHO
 10000 7,125 POL2REC REC2POL  ROT . F. 
 10000 1,0 POL2REC REC2POL    ROT . F. 
 
-10000 89,0  2000CORDIC  ROT . F.
-10000 75,0  2000CORDIC  ROT . F.
-10000 60,0  2000CORDIC  ROT . F.
-10000 45,0  2000CORDIC  ROT . F.
-10000 30,0  2000CORDIC  ROT . F.
-10000 26,565 2000CORDIC ROT . F.
-10000 15,0 2000CORDIC   ROT . F.
-10000 14,036 2000CORDIC ROT . F.
-10000 7,125 2000CORDIC  ROT . F.
-10000 1,0 2000CORDIC    ROT . F.
+10000 89,0   1000CORDIC      ROT . F.
+10000 75,0   1000CORDIC      ROT . F.
+10000 60,0   1000CORDIC      ROT . F.
+10000 45,0   1000CORDIC      ROT . F.
+10000 30,0   1000CORDIC      ROT . F.
+10000 26,565 1000CORDIC      ROT . F.
+10000 15,0   1000CORDIC      ROT . F.
+10000 14,036 1000CORDIC      ROT . F.
+10000 7,125  1000CORDIC      ROT . F.
+10000 1,0    1000CORDIC      ROT . F.
 
 
index 8f0ae44..f2c3701 100644 (file)
@@ -6,7 +6,28 @@
 ; display all FastForth compilation options
 
 
-WIPE
+RST_STATE
+
+[UNDEFINED] CONSTANT [IF]
+: CONSTANT 
+DEFER
+HI2LO
+MOV @R1+,R13
+MOV #$1285,-4(R10)
+MOV R14,-2(R10)
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] OVER [IF]
+CODE OVER
+MOV R14,-2(R15)
+MOV @R15,R14
+SUB #2,R15
+MOV @R13+,R0
+ENDCODE
+[THEN]
 
 0 CONSTANT CASE IMMEDIATE
 
@@ -40,6 +61,13 @@ LOOP
 $1CE4 CONSTANT PAD
 [THEN]
 
+[UNDEFINED] PLUS [IF]
+CODE +
+ADD @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
 [UNDEFINED] AND [IF]
 CODE AND
 AND @R15+,R14
@@ -48,6 +76,60 @@ ENDCODE
 [THEN]
 
 
+[UNDEFINED] ROT [IF]
+CODE ROT
+MOV @R15,R10
+MOV R14,0(R15)
+MOV 2(R15),R14
+MOV R10,2(R15)
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] C@ [IF]
+CODE C@
+MOV.B @R14,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] BL [IF]
+#32 CONSTANT BL
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+: SPACE
+BL EMIT ;
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+CODE SPACES
+CMP #0,R14
+0<> IF
+    PUSH R13
+    BEGIN
+        LO2HI
+        BL EMIT
+        HI2LO
+        SUB #2,R13 
+        SUB #1,R14
+    0= UNTIL
+    MOV @R1+,R13
+THEN
+MOV @R15+,R14
+MOV @R13+,R0              
+ENDCODE
+[THEN]
+
+[UNDEFINED] UM/MOD [IF]
+CODE UM/MOD
+    PUSH #DROP
+    MOV #<#,R9
+    ADD #8,R9
+    MOV R9,R0
+ENDCODE
+[THEN]
+
 [UNDEFINED] WORDS [IF]
 : WORDS
 CR 
@@ -87,42 +169,43 @@ ESC ." [7m"
 ESC ." [0m"
 $1812 @
 
-      DUP 0< IF CR ." LF XTAL" THEN
-DUP + DUP 0< IF CR ." TERMINAL5WIRES" THEN
-DUP + DUP 0< IF CR ." TERMINAL4WIRES" THEN
-DUP + DUP 0< IF CR ." TERMINAL3WIRES" THEN
-DUP + DUP 0< IF CR ." HALFDUPLEX_TERMINAL" THEN
-DUP + DUP 0< IF CR ." PROMPT" THEN
+      DUP 0< IF CR ." 32.768kHz XTAL" THEN
+DUP + DUP 0< IF DUP + CR ." HARDWARE (RTS/CTS) TERMINAL"
+             ELSE DUP + DUP 0< IF CR ." HARDWARE (RTS) TERMINAL" THEN
+             THEN
+DUP + DUP 0< IF CR ." XON/XOFF TERMINAL" THEN
+DUP + DUP 0< IF CR ." HALF-DUPLEX TERMINAL" THEN
+DUP + DUP 0< IF CR ." ASM DATA ACCESS BEYOND $FFFF" THEN
 DUP + DUP 0< IF CR ." BOOTLOADER" THEN
-DUP + DUP 0< IF CR ." SD_CARD_READ_WRITE" THEN
-DUP + DUP 0< IF CR ." SD_CARD_LOADER" THEN
-DUP + DUP 0< IF CR ." FIXPOINT_INPUT" THEN
-DUP + DUP 0< IF CR ." DOUBLE_INPUT" THEN
-DUP + DUP 0< IF CR ." VOCABULARY_SET" THEN
+DUP + DUP 0< IF CR ." SD_CARD READ/WRITE" THEN
+DUP + DUP 0< IF CR ." SD_CARD LOADER" THEN
+DUP + DUP 0< IF CR ." FIXPOINT INPUT" THEN
+DUP + DUP 0< IF CR ." DOUBLE INPUT" THEN
+DUP + DUP 0< IF CR ." VOCABULARY SET" THEN
 DUP + DUP 0< IF CR ." NONAME" THEN
-DUP + DUP 0< IF CR ." EXTENDED_ASM" THEN
+DUP + DUP 0< IF CR ." EXTENDED ASSEMBLER" THEN
 DUP + DUP 0< IF CR ." ASSEMBLER" THEN
-DUP + DUP 0< IF CR ." CONDCOMP" THEN
+DUP + DUP 0< IF CR ." CONDITIONNAL COMPILATION" THEN
 
 0< IF
     CR ESC ." [7m"
     ." OTHER OPTIONS:"
     ESC ." [0m"
-    [DEFINED] {ANS_COMP} [IF] CR ." ANS_COMPLEMENT" [THEN]
-    [DEFINED] {TOOLS}    [IF] CR ." UTILITY" [THEN]
-    [DEFINED] {FIXPOINT} [IF] CR ." FIXPOINT" [THEN]
-    [DEFINED] {SD_TOOLS} [IF] CR ." SD_TOOLS" [THEN]
+    CR ." none"
+    ESC ." [G"
+    [DEFINED] {ANS_COMP} [IF] ." ANS_COMPLEMENT" CR [THEN]
+    [DEFINED] {TOOLS}    [IF] ." UTILITY" CR [THEN]
+    [DEFINED] {FIXPOINT} [IF] ." FIXPOINT" CR [THEN]
+    [DEFINED] {SD_TOOLS} [IF] ." SD_TOOLS" CR [THEN]
     CR CR
     [DEFINED] VOCABULARY [IF]
-    CR ESC ." [7m"
+    ESC ." [7m"
     ." ASSEMBLER word set"
     ESC ." [0m"
-        ALSO ASSEMBLER WORDS CR PREVIOUS
+    ALSO ASSEMBLER WORDS CR PREVIOUS
     [THEN]
-    CR ESC ." [7m"
-    ." FORTH word set"
-    ESC ." [0m"
-    WORDS
+ESC ." [7m" ." FORTH word set" ESC ." [0m"
+WORDS
 THEN
 ;
 
@@ -140,9 +223,12 @@ ESC ." [7m"
 
 $1A04 @
 
-CR ." FastForth V" $1810 @ U. ." for MSP430FR"
+CR ." FastForth V" $1810 @
+0 <# #  8 HOLD # 46 hold  #S #> TYPE SPACE
+." for MSP430FR"
 CASE
     $830C     OF      ." 2355,"   $8000   ENDOF
+    $8328     OF      ." 2476,"   $8000   ENDOF
     $8240     OF      ." 2433,"   $C400   ENDOF
     $81F0     OF      ." 4133,"   $C400   ENDOF
     $8103     OF      ." 5739,"   $C200   ENDOF
@@ -153,21 +239,27 @@ CASE
     $81A8     OF      ." 6989,"   $4400   ENDOF
 
     ABORT" xxxx <-- unrecognized device!"
-ENDCASE
+ENDCASE SPACE 
 
-SPACE $1806 @ 0 1000 UM/MOD U. 
+['] ['] DUP @ $1287 = IF ." DTC=1," DROP
+                         ELSE 2 + @ $1287 =
+                            IF ." DTC=2,"
+                            ELSE ." DTC=3,"
+                            THEN
+                        THEN SPACE 
+
+$1800 @ U. BS ." -Entry word sets, "
+
+$1806 @ 0 1000 UM/MOD U.
 ?DUP IF  BS ." ," U.
 THEN ." MHz, "
 
-$1800 @ U. BS ." -Entry Vocabularies, "
+- U. ." bytes"
 
-- U. ." bytes, "
 
-$FF80 HERE - U. ." bytes free" CR
-
-ESC ." [0m"
+CR CR ADDONS
 
-CR ADDONS
+CR WARM
 ;
 
 ECHO specs
index 992d10c..9cc3c1d 100644 (file)
@@ -3,21 +3,22 @@
 ; FIXPOINT.4th
 ; -----------------------------------------------------
 
-: DEFINED! ECHO 1 ABORT" already loaded!" ;
-
-[DEFINED] {FIXPOINT} [IF] DEFINED!
-
-[ELSE]
-
 PWR_STATE
 
-MARKER {FIXPOINT}
+[UNDEFINED] {FIXPOINT} [IF]
 
+MARKER {FIXPOINT}
 
+[UNDEFINED] PLUS [IF]
+CODE +
+ADD @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
 
 [UNDEFINED] HOLDS [IF]
 CODE HOLDS
-            MOV @R15+,R9
+BW3         MOV @R15+,R9
             ADD R14,R9
             MOV &$1DB2,R8
 BEGIN       SUB #1,R9
@@ -30,6 +31,14 @@ REPEAT      MOV R8,&$1DB2
 ENDCODE
 [THEN]
 
+[UNDEFINED] DABS [IF]
+CODE DABS
+MOV #1-,R9
+ADD #4,R9
+MOV R9,R0
+ENDCODE
+[THEN]
+
 CODE F+
     ADD @R15+,2(R15)
     ADDC @R15+,R14
@@ -43,7 +52,9 @@ CODE F-
     MOV @R13+,R0
 ENDCODE
 
-$1A04 C@ $EF > [IF] ; test tag value MSP430FR413x subfamily without hardware_MPY 
+$1A00 4 + @ $81F3 U<
+$81EF $1A00 4 + @ U< 
+= [IF]   ; MSP430FR413x subfamily without hardware_MPY
 
 CODE F/
             PUSHM #4,R7    
@@ -105,7 +116,7 @@ CODE F#S
             PUSHM #2,R14
             MOV #0,R12
 BEGIN       PUSH R12
-            MOV &BASE,R14
+            MOV &$1DDC,R14
             LO2HI
             UM*
             HI2LO
@@ -122,7 +133,7 @@ U>= UNTIL
             MOV #0,0(R15)
             SUB #2,R15
             MOV #$1D90,0(R15)
-            JMP HOLDS
+            GOTO BW3
 ENDCODE
 [THEN]
 
@@ -179,7 +190,7 @@ THEN
         GOTO BW1
 ENDCODE
 
-[ELSE]
+[ELSE] ; else if hardware multiplier
 
 CODE F/
             PUSHM #4,R7
@@ -240,7 +251,7 @@ CODE F#S
             MOV R14,R11
             MOV #0,R12
 BEGIN       MOV @R15,&$4C0
-            MOV &BASE,&$4C8
+            MOV &$1DDC,&$4C8
             MOV &$4E4,0(R15)
             MOV &$4E6,R14
             CMP #10,R14
@@ -253,7 +264,7 @@ BEGIN       MOV @R15,&$4C0
             MOV R11,R14
             SUB #2,R15
             MOV #$1D90,0(R15)
-            JMP HOLDS
+            GOTO BW3
 ENDCODE
 [THEN]
 
@@ -270,11 +281,16 @@ ENDCODE
 
 [THEN]
 
+[UNDEFINED] SPACE [IF]
+: SPACE
+$20 EMIT ;
+[THEN]
+
 [UNDEFINED] F. [IF]
 CODE F.
 MOV R14,R12
 MOV #4,R11
-MOV &BASE,R10
+MOV &$1DDC,R10
 CMP ##10,R10
 0= IF
     ADD #1,R11
@@ -301,27 +317,24 @@ CODE S>F
 ENDCODE
 [THEN]
 
-[UNDEFINED] 2@ [IF]
+RST_HERE
+
+[THEN]
 
-CODE 2@
+[UNDEFINED] 2CONSTANT [IF]
+: 2CONSTANT
+CREATE , ,
+DOES>
+HI2LO
 SUB #2,R15
 MOV 2(R14),0(R15)
 MOV @R14,R14
+MOV @R1+,R13
 MOV @R13+,R0
 ENDCODE
-[THEN]
-
-[UNDEFINED] 2CONSTANT [IF]
-: 2CONSTANT
-CREATE , ,
-DOES> 2@
 ;
 [THEN]
 
-RST_HERE
-
-[THEN]
-
 ECHO
 
 ; -----------------------
@@ -332,11 +345,11 @@ ECHO
 3,14159 2CONSTANT PI
 PI -1,0 F* 2CONSTANT -PI
 
-$10 BASE !  PI F. 
+$10 $1DDC !  PI F. 
            -PI F.
-%10 BASE !  PI F. 
+%10 $1DDC !  PI F. 
            -PI F.
-#10 BASE !  PI F. 
+#10 $1DDC !  PI F. 
            -PI F.
 
 PI 2,0 F* F.      
@@ -370,3 +383,4 @@ PI -2,0 F/ F.
 181,01933598375 -181,01933598375 f* f.
 -181,01933598375 181,01933598375 f* f.
 -181,01933598375 -181,01933598375 f* f.
+
index 8a8b7e6..059bc71 100644 (file)
@@ -3,7 +3,125 @@
 ; TEST_ASM.4th
 ; -----------------------------------------------------------------------
 
+[UNDEFINED] + [IF]
+CODE +
+ADD @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] MAX [IF]
+
+CODE MAX
+    CMP @R15,R14
+    S<  ?GOTO FW1
+BW1 ADD #2,R15
+    MOV @R13+,R0
+ENDCODE
+
+CODE MIN
+    CMP @R15,R14
+    S<  ?GOTO BW1
+FW1 MOV @R15+,R14
+    MOV @R13+,R0
+ENDCODE
+
+[THEN]
+
+[UNDEFINED] C@ [IF]
+CODE C@
+MOV.B @R14,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] VARIABLE [IF]
+: VARIABLE 
+DEFER
+HI2LO
+MOV @R1+,R13
+MOV #$1286,-4(R10)
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] CONSTANT [IF]
+: CONSTANT 
+DEFER
+HI2LO
+MOV @R1+,R13
+MOV #$1285,-4(R10)
+MOV R14,-2(R10)
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+: SPACE
+$20 EMIT ;
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+CODE SPACES
+CMP #0,R14
+0<> IF
+    PUSH R13
+    BEGIN
+        LO2HI
+        $20 EMIT
+        HI2LO
+        SUB #2,R13 
+        SUB #1,R14
+    0= UNTIL
+    MOV @R1+,R13
+THEN
+MOV @R15+,R14
+MOV @R13+,R0              
+ENDCODE
+[THEN]
+
+[UNDEFINED] OVER [IF]
+CODE OVER
+MOV R14,-2(R15)
+MOV @R15,R14
+SUB #2,R15
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] U.R [IF]
+: U.R
+  >R  <# 0 # #S #>  
+  R> OVER - 0 MAX SPACES TYPE
+;
+[THEN]
+
+[UNDEFINED] DUMP [IF]
+CODE DUMP
+PUSH R13
+PUSH &$1DDC
+MOV #$10,&$1DDC
+ADD @R15,R14
+LO2HI
+  SWAP
+  DO  CR
+    I 4 U.R SPACE
+      I 8 + I
+      DO I C@ 3 U.R LOOP
+      SPACE
+      I $10 + I 8 +
+      DO I C@ 3 U.R LOOP  
+      SPACE SPACE
+      I $10 + I
+      DO I C@ $7E MIN $20 MAX EMIT LOOP
+  $10 +LOOP
+  R> $1DDC !
+;
+[THEN]
+
 CODE TESTPUSHM
+BW1
             MOV     #22222,R8
             MOV     #3,R9
             MOV     #2,R10
@@ -30,7 +148,7 @@ CODE TESTPUSHM
 TESTPUSHM  ; you should see 11111 3 2 1 0 -->
 
 CODE TESTPOPM
-            JMP TESTPUSHM
+            GOTO BW1
 ENDCODE
 
 
@@ -40,24 +158,24 @@ TESTPOPM  ; you should see 11111 3 2 1 0 -->
 
 CODE TEST1
 
-            MOV &BASE,&BASE
-            CMP #%10,&BASE
-0<> IF      MOV #2,&BASE
-ELSE        MOV #$0A,&BASE
+            MOV &$1DDC,&$1DDC
+            CMP #%10,&$1DDC
+0<> IF      MOV #2,&$1DDC
+ELSE        MOV #$0A,&$1DDC
 THEN        
             COLON
-            BASE @ U.
+            $1DDC @ U.
             ;
 
 
 : TEST2
-            BASE @ U.
+            $1DDC @ U.
             HI2LO
 
 
-            CMP #2, &BASE
-0<> IF      MOV #2, &BASE
-ELSE        MOV #10,&BASE
+            CMP #2, &$1DDC
+0<> IF      MOV #2, &$1DDC
+ELSE        MOV #10,&$1DDC
 THEN
             MOV @R1+,R13
             MOV @R13+,R0
@@ -65,11 +183,11 @@ ENDCODE
 
 
 CODE TEST3
-            CMP #2, &BASE
-0<> IF      MOV #2, &BASE
-ELSE        MOV #10,&BASE
+            CMP #2, &$1DDC
+0<> IF      MOV #2, &$1DDC
+ELSE        MOV #10,&$1DDC
 THEN        COLON
-            BASE @  U.
+            $1DDC @  U.
 ;
 
 
@@ -95,6 +213,23 @@ TEST5  ; you should see :  9 8 7 6 5 4 3 2 1 0 -->
 
 
 
+[UNDEFINED] C, [IF]
+CODE C,
+MOV &$1DC6,R10
+MOV.B R14,0(R10)
+ADD #1,&$1DC6
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] C@ [IF]
+CODE C@
+MOV.B @R14,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
 : BYTES_TABLE_IDX
 CREATE 
 0 DO I C,
@@ -219,15 +354,20 @@ TABLE20 PFA_TABLE ! TABLE 10 DUMP
 ; create a primary DEFERred assembly word
 ; -----------------------------------------------------------------------
 
+
 DEFER TRUC              ; here, TRUC is a secondary DEFERred word (i.e. without BODY)
 
 
+
 CODENNM                 ; leaves its execution address (CFA) on stack
     SUB #2,R15
     MOV R14,0(R15)
     MOV @R13+,R0
 ENDCODE 
-DUP . IS TRUC         ; TRUC becomes a primary DEFERred word
+
+DUP .
+
+IS TRUC                 ; TRUC becomes a primary DEFERred word
                         ; with its default action (DUP) located at its BODY addresse.
 
 TRUC .                  ; display R14 value -->
index f7a5cd0..0cce854 100644 (file)
@@ -1,43 +1,15 @@
 
 ; -----------------------------------
-; PROG100k.4th = 110 x RC5toLCD.4th
+; PROG100k.4th = 77 x RC5toLCD.4th
 ; -----------------------------------
 
 
-PWR_STATE
+RST_STATE
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -50,7 +22,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -69,9 +40,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -81,79 +52,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -170,15 +80,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -216,36 +128,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -259,98 +187,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -363,7 +244,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -382,9 +262,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -394,79 +274,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -483,15 +302,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -529,36 +350,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -572,98 +409,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -676,7 +466,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -695,9 +484,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -707,79 +496,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
+CODE LCD_WRF
+    BIC.B #2,&$243
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -796,15 +524,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -842,36 +572,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -885,98 +631,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -989,7 +688,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -1008,9 +706,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -1020,79 +718,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -1109,15 +746,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -1155,36 +794,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -1198,98 +853,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -1302,7 +910,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -1321,9 +928,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -1333,104 +940,45 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
 
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
 
 
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
+ASM WDT_INT
+ADD #2,R1
+BIT.B #$20,&$240
+0= IF
+    CMP #19,&$3D6
+    U< IF
+        ADD #1,&$3D6
+    THEN
+ELSE
+    BIT.B #$40,&$240
+    0= IF
+        CMP #3,&$3D6
+        U>= IF
+           SUB #1,&$3D6
+        THEN
+    THEN
+THEN
+BW1
+MOV @R1+,R0
+ENDASM
 
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -1468,36 +1016,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -1511,98 +1075,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -1615,7 +1132,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -1634,9 +1150,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -1646,79 +1162,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -1735,15 +1190,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -1781,36 +1238,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -1824,98 +1297,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -1928,7 +1354,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -1947,9 +1372,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -1959,79 +1384,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
 
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -2048,15 +1412,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -2094,36 +1460,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -2137,98 +1519,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -2241,7 +1576,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -2260,9 +1594,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -2272,79 +1606,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -2361,15 +1634,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -2407,36 +1682,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -2450,98 +1741,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -2554,7 +1798,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -2573,9 +1816,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -2585,79 +1828,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -2674,16 +1856,18 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
+MOV #1778,R9
 MOV #14,R10
 BEGIN
 MOV #%1011100100,&$380
@@ -2720,36 +1904,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -2763,98 +1963,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -2867,7 +2020,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -2886,9 +2038,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -2898,79 +2050,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -2987,15 +2078,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -3033,36 +2126,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -3076,98 +2185,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -3180,7 +2242,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -3199,9 +2260,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -3211,79 +2272,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -3300,15 +2300,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -3346,37 +2348,53 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
-    MOV #19,&$3D2
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
+    MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
@@ -3389,98 +2407,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -3493,7 +2464,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -3512,9 +2482,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -3524,79 +2494,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -3613,15 +2522,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -3659,36 +2570,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -3702,98 +2629,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -3806,7 +2686,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -3825,9 +2704,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -3837,79 +2716,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -3926,15 +2744,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -3972,36 +2792,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -4015,97 +2851,50 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -4119,7 +2908,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -4138,9 +2926,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -4150,79 +2938,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -4239,15 +2966,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -4285,36 +3014,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -4328,98 +3073,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -4432,7 +3130,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -4451,9 +3148,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -4463,79 +3160,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -4552,15 +3188,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -4598,36 +3236,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -4641,98 +3295,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -4745,7 +3352,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -4764,9 +3370,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -4776,79 +3382,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -4865,15 +3410,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -4911,36 +3458,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -4954,98 +3517,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -5058,7 +3574,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -5077,9 +3592,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -5089,79 +3604,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -5178,15 +3632,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -5224,36 +3680,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -5267,98 +3739,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -5371,7 +3796,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -5390,9 +3814,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -5402,79 +3826,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
 
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -5491,15 +3854,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -5537,36 +3902,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -5580,98 +3961,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -5684,7 +4018,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -5703,9 +4036,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -5715,79 +4048,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -5804,15 +4076,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -5850,36 +4124,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -5893,98 +4183,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -5997,7 +4240,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -6016,9 +4258,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -6028,104 +4270,45 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
 
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
 
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
 
+ASM WDT_INT
+ADD #2,R1
+BIT.B #$20,&$240
+0= IF
+    CMP #19,&$3D6
+    U< IF
+        ADD #1,&$3D6
+    THEN
+ELSE
+    BIT.B #$40,&$240
+    0= IF
+        CMP #3,&$3D6
+        U>= IF
+           SUB #1,&$3D6
+        THEN
+    THEN
+THEN
+BW1
+MOV @R1+,R0
+ENDASM
 
+ASM RC5_INT
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
 [THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -6163,36 +4346,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -6206,98 +4405,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -6310,7 +4462,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -6329,9 +4480,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -6341,79 +4492,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -6430,15 +4520,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -6476,36 +4568,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -6519,98 +4627,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -6623,7 +4684,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -6642,9 +4702,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -6654,79 +4714,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
+    GOTO BW1
 ENDCODE
 
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -6743,15 +4742,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -6789,36 +4790,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -6832,98 +4849,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -6936,7 +4906,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -6955,9 +4924,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -6967,79 +4936,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -7056,15 +4964,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -7102,36 +5012,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -7145,98 +5071,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -7249,7 +5128,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -7268,9 +5146,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -7280,79 +5158,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -7369,15 +5186,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -7415,36 +5234,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -7458,98 +5293,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -7562,7 +5350,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -7581,9 +5368,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -7593,79 +5380,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -7682,15 +5408,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -7728,36 +5456,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -7771,98 +5515,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -7875,7 +5572,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -7894,9 +5590,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -7906,79 +5602,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -7995,15 +5630,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -8041,36 +5678,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -8084,98 +5737,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
+    ['] LCD_HOME IS CR
+    ['] LCD_WRC  IS EMIT
+    CR ." I love you"
+    ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -8188,7 +5794,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -8207,9 +5812,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -8219,79 +5824,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -8308,15 +5852,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -8354,36 +5900,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -8397,98 +5959,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -8501,7 +6016,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -8520,9 +6034,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -8532,79 +6046,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -8621,15 +6074,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -8667,36 +6122,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -8710,97 +6181,50 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -8814,7 +6238,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -8833,9 +6256,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -8845,79 +6268,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -8934,15 +6296,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -8980,36 +6344,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -9023,98 +6403,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -9127,7 +6460,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -9146,9 +6478,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -9158,79 +6490,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -9247,15 +6518,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -9293,36 +6566,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -9336,111 +6625,63 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
+CODE 20_US
+BEGIN
+    BEGIN
+        BIT #1,&$3C0
+    0<> UNTIL
+    BIC #1,&$3C0
+    SUB #1,R14
+U< UNTIL
+MOV @R15+,R14
+MOV @R13+,R0
 ENDCODE
 
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -9459,9 +6700,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -9471,79 +6712,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -9560,15 +6740,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -9606,36 +6788,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -9649,98 +6847,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -9753,7 +6904,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -9772,9 +6922,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -9784,79 +6934,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -9873,15 +6962,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -9919,36 +7010,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -9962,98 +7069,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -10066,7 +7126,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -10085,9 +7144,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -10097,79 +7156,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -10186,15 +7184,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -10232,36 +7232,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -10275,98 +7291,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -10379,7 +7348,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -10398,9 +7366,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -10410,79 +7378,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -10499,15 +7406,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -10545,36 +7454,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -10588,98 +7513,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -10692,7 +7570,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -10711,9 +7588,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -10723,79 +7600,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
 
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -10812,15 +7628,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -10858,36 +7676,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -10901,98 +7735,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -11005,7 +7792,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -11024,9 +7810,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -11036,79 +7822,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -11125,15 +7850,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -11171,36 +7898,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -11214,98 +7957,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -11318,7 +8014,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -11337,9 +8032,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -11349,79 +8044,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -11438,15 +8072,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -11484,36 +8120,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -11527,98 +8179,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -11631,7 +8236,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -11650,9 +8254,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -11662,79 +8266,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -11751,15 +8294,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -11797,36 +8342,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -11840,98 +8401,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -11944,7 +8458,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -11963,9 +8476,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -11975,79 +8488,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -12064,15 +8516,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -12110,36 +8564,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -12153,98 +8623,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
+    ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -12257,7 +8680,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -12276,9 +8698,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -12288,79 +8710,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -12377,15 +8738,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -12423,36 +8786,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -12466,98 +8845,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -12570,7 +8902,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -12589,9 +8920,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -12601,79 +8932,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -12690,15 +8960,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -12736,36 +9008,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -12779,97 +9067,50 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -12883,7 +9124,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -12902,9 +9142,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -12914,79 +9154,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -13003,15 +9182,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -13049,36 +9230,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -13092,98 +9289,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -13196,7 +9346,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -13215,9 +9364,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -13227,79 +9376,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -13316,15 +9404,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -13362,36 +9452,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -13405,111 +9511,63 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
+CODE 20_US
+BEGIN
+    BEGIN
+        BIT #1,&$3C0
+    0<> UNTIL
+    BIC #1,&$3C0
+    SUB #1,R14
+U< UNTIL
+MOV @R15+,R14
+MOV @R13+,R0
 ENDCODE
 
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -13528,9 +9586,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -13540,79 +9598,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -13629,15 +9626,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -13675,36 +9674,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -13718,98 +9733,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -13822,7 +9790,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -13841,9 +9808,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -13853,79 +9820,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -13942,15 +9848,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -13988,36 +9896,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -14031,98 +9955,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -14135,7 +10012,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -14154,9 +10030,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -14166,79 +10042,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -14255,15 +10070,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -14301,36 +10118,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -14344,98 +10177,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -14448,7 +10234,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -14467,9 +10252,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -14479,79 +10264,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -14568,15 +10292,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -14614,36 +10340,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -14657,98 +10399,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -14761,7 +10456,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -14780,9 +10474,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -14792,79 +10486,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
+    GOTO BW1
 ENDCODE
 
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -14881,15 +10514,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -14927,36 +10562,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -14970,98 +10621,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -15074,7 +10678,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -15093,9 +10696,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -15105,79 +10708,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -15194,15 +10736,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -15240,36 +10784,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -15283,98 +10843,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -15387,7 +10900,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -15406,9 +10918,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -15418,79 +10930,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -15507,15 +10958,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -15553,36 +11006,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -15596,98 +11065,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -15700,7 +11122,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -15719,9 +11140,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -15731,79 +11152,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -15820,15 +11180,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -15866,36 +11228,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -15909,98 +11287,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -16013,7 +11344,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -16032,9 +11362,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -16044,79 +11374,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -16133,15 +11402,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -16179,36 +11450,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -16222,98 +11509,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
+    ['] LCD_HOME IS CR
+    ['] LCD_WRC  IS EMIT
+    CR ." I love you"
+    ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -16326,7 +11566,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -16345,9 +11584,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -16357,79 +11596,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -16446,15 +11624,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -16492,36 +11672,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -16535,98 +11731,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -16639,7 +11788,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -16658,9 +11806,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -16670,79 +11818,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -16759,15 +11846,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -16805,36 +11894,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -16848,97 +11953,50 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -16952,7 +12010,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -16971,9 +12028,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -16983,79 +12040,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -17072,15 +12068,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -17118,36 +12116,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -17161,98 +12175,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -17265,7 +12232,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -17284,9 +12250,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -17296,79 +12262,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -17385,15 +12290,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -17431,36 +12338,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -17474,111 +12397,63 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
+CODE 20_US
+BEGIN
+    BEGIN
+        BIT #1,&$3C0
+    0<> UNTIL
+    BIC #1,&$3C0
+    SUB #1,R14
+U< UNTIL
+MOV @R15+,R14
+MOV @R13+,R0
 ENDCODE
 
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -17597,9 +12472,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -17609,79 +12484,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -17698,15 +12512,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -17744,36 +12560,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -17787,98 +12619,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -17891,7 +12676,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -17910,9 +12694,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -17922,79 +12706,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -18011,15 +12734,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -18057,36 +12782,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -18100,98 +12841,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -18204,7 +12898,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -18223,9 +12916,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -18235,79 +12928,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -18324,15 +12956,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -18370,36 +13004,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -18413,98 +13063,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -18517,7 +13120,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -18536,9 +13138,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -18548,79 +13150,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -18637,15 +13178,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -18683,36 +13226,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -18726,98 +13285,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -18830,7 +13342,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -18849,9 +13360,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -18861,79 +13372,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
 
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -18950,15 +13400,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -18996,36 +13448,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -19039,98 +13507,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -19143,7 +13564,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -19162,9 +13582,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -19174,79 +13594,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -19263,15 +13622,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -19309,36 +13670,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -19352,98 +13729,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -19456,7 +13786,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -19475,9 +13804,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -19487,79 +13816,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -19576,15 +13844,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -19622,36 +13892,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -19665,98 +13951,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -19769,7 +14008,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -19788,9 +14026,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -19800,79 +14038,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -19889,15 +14066,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -19935,36 +14114,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -19978,98 +14173,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -20082,7 +14230,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -20101,9 +14248,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -20113,79 +14260,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -20202,15 +14288,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -20248,36 +14336,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -20291,98 +14395,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
+    ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -20395,7 +14452,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -20414,9 +14470,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -20426,79 +14482,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -20515,15 +14510,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -20561,36 +14558,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -20604,98 +14617,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -20708,7 +14674,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -20727,9 +14692,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -20739,79 +14704,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -20828,15 +14732,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -20874,36 +14780,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -20917,97 +14839,50 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -21021,7 +14896,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -21040,9 +14914,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -21052,79 +14926,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -21141,15 +14954,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -21187,36 +15002,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -21230,98 +15061,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -21334,7 +15118,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -21353,9 +15136,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -21365,79 +15148,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -21454,15 +15176,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -21500,36 +15224,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -21543,111 +15283,63 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
+CODE 20_US
+BEGIN
+    BEGIN
+        BIT #1,&$3C0
+    0<> UNTIL
+    BIC #1,&$3C0
+    SUB #1,R14
+U< UNTIL
+MOV @R15+,R14
+MOV @R13+,R0
 ENDCODE
 
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -21666,9 +15358,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -21678,79 +15370,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -21767,15 +15398,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -21813,36 +15446,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -21856,98 +15505,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -21960,7 +15562,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -21979,9 +15580,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -21991,79 +15592,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -22080,15 +15620,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -22126,36 +15668,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -22169,98 +15727,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -22273,7 +15784,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -22292,9 +15802,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -22304,79 +15814,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -22393,15 +15842,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -22439,36 +15890,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -22482,98 +15949,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -22586,7 +16006,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -22605,9 +16024,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -22617,79 +16036,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -22706,15 +16064,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -22752,36 +16112,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -22795,98 +16171,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -22899,7 +16228,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -22918,9 +16246,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -22930,10408 +16258,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
+    GOTO BW1
 ENDCODE
 
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-
-ASM WDT_INT
-BIT.B #$20,&$240
-0= IF
-    CMP #19,&$3D6
-    U< IF
-        ADD #1,&$3D6
-    THEN
-ELSE
-    BIT.B #$40,&$240
-    0= IF
-        CMP #3,&$3D6
-        U>= IF
-           SUB #1,&$3D6
-        THEN
-    THEN
-THEN
-BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
-ENDASM
-
-
-ASM RC5_INT
-  MOV #1,&$3A0
-MOV #1778,R9
-MOV #14,R10
-BEGIN
-MOV #%1011100100,&$380
-    RRUM    #1,R9
-    MOV     R9,R8
-    RRUM    #1,R8
-    ADD     R9,R8
-    BEGIN   CMP R8,&$390
-    U>= UNTIL
-    BIT.B   #4,&$200
-    ADDC    R11,R11
-    MOV.B   &$200,&$208
-    BIC.B   #4,&$20C
-    SUB     #1,R10
-0<> WHILE
-    ADD R9,R8
-    BEGIN
-        MOV &$390,R9
-        CMP R8,R9
-        U>= IF
-        BIC #$30,&$380
-        GOTO BW1
-        THEN
-        BIT.B #4,&$20C
-    0<> UNTIL
-REPEAT
-BIC #$30,&$380
-RLAM    #1,R11
-MOV.B   R11,R9
-RRUM    #2,R9
-BIT     #$4000,R11
-0= IF   BIS #$40,R9
-THEN
-RRUM    #3,R11
-XOR     @R1,R11
-BIT     #$400,R11
-0= ?GOTO BW2
-XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
-LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV R14,&BASE
-MOV @R15+,R14
-GOTO BW3
-ENDASM
-
-
-ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
-ENDASM
-
-
-CODE START
-    MOV #%1011010100,&$3C0
-    MOV #1,&$3E0
-    MOV #19,&$3D2
-    MOV #%01100000,&$3C6
-    MOV #10,&$3D6
-    BIS.B #$20,&$204
-    BIS.B #$20,&$20A
-    BIS.B #7,&$245
-    BIC.B #7,&$247
-    BIS.B #$0F,&$224
-    BIC.B #$0F,&$226
-    BIS.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
-    MOV ##1638,&$352
-    MOV #%10000,&$342
-    MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
-    ['] LCD_HOME IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
-    ['] CR >BODY IS CR
-    ['] EMIT >BODY IS EMIT
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
-    ABORT
-;
-
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-[DEFINED] ASM [IF]
-
-MARKER {RC5TOLCD}
-
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
-CODE 20_US
-BEGIN
-    BEGIN
-        BIT #1,&$3C0
-    0<> UNTIL
-    BIC #1,&$3C0
-    SUB #1,R14
-U< UNTIL
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE TOP_LCD
-    BIS.B #4,&$243
-    BIT.B #1,&$241
-0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -33348,15 +16286,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -33394,36 +16334,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -33437,98 +16393,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -33541,110 +16450,48 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
 0= IF
-    AND.B #$0F,R14
-    MOV.B R14,&$222
-    BIC.B #4,&$243
-    MOV @R15+,R14
-    MOV @R13+,R0
-THEN
-    SUB #2,R15
-    MOV R14,0(R15)
-    BIC.B #4,&$243
-    MOV.B &$220,R14
-    AND.B #$0F,R14
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_W
-    SUB #2,R15
-    MOV R14,0(R15)
-    RRUM #4,R14
-    BIC.B #1,&$243
-    BIS.B #$0F,&$224
-COLON
-    TOP_LCD 2 20_US
-    TOP_LCD 2 20_US 
-;
-
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
+    AND.B #$0F,R14
+    MOV.B R14,&$222
+    BIC.B #4,&$243
+    MOV @R15+,R14
+    MOV @R13+,R0
+THEN
+    SUB #2,R15
+    MOV R14,0(R15)
+    BIC.B #4,&$243
+    MOV.B &$220,R14
+    AND.B #$0F,R14
     MOV @R13+,R0
 ENDCODE
 
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
+    MOV R14,0(R15)
+    RRUM #4,R14
+    BIC.B #1,&$243
+    BIS.B #$0F,&$224
+COLON
+    TOP_LCD 2 20_US
+    TOP_LCD 2 20_US 
+;
 
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -33661,15 +16508,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -33707,36 +16556,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -33750,98 +16615,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -33854,7 +16672,6 @@ MOV @R15+,R14
 MOV @R13+,R0
 ENDCODE
 
-
 CODE TOP_LCD
     BIS.B #4,&$243
     BIT.B #1,&$241
@@ -33873,9 +16690,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -33885,79 +16702,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-CODE LCD_WrF
-    BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-
-CODE LCD_RdS
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_R
+    GOTO BW1
 ENDCODE
 
-
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -33974,15 +16730,17 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
-
 ASM RC5_INT
-  MOV #1,&$3A0
+ADD #2,R1
+$1806 @ 16000 = [IF]
+    MOV #1,&$3A0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3A0
+[THEN]
 MOV #1778,R9
 MOV #14,R10
 BEGIN
@@ -34020,36 +16778,52 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
-
 ASM BACKGROUND
-MOV #SLEEP,R9
-ADD #4,R9
-MOV R9,R0
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
 
+CODE STOP
+BW1 MOV #SLEEP,R9
+    ADD #4,R9
+    MOV R9,-2(R9)
+COLON
+['] WARM >BODY IS WARM
+ECHO
+." RC5toLCD is removed. type START to restart"
+COLD
+;
 
-CODE START
-    MOV #%1011010100,&$3C0
+CODE APP_INIT
+MOV #%1011010100,&$3C0
+$1806 @ 16000 = [IF]
     MOV #1,&$3E0
+[THEN]
+$1806 @ 24000 = [IF]
+    MOV #2,&$3E0
+[THEN]
     MOV #19,&$3D2
     MOV #%01100000,&$3C6
     MOV #10,&$3D6
@@ -34063,99 +16837,51 @@ CODE START
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
-
-LO2HI
-
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+BIC #1,&$130
+BIS.B #3,&$20D
+MOV &$1808,R8
+CMP #4,R8
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
-    CR ." I love you"   
+    CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
-
-CODE STOP
-    MOV #SLEEP,R9
-    ADD #4,R9
-    MOV R9,-2(R9)
-
-COLON
-    ['] WARM >BODY IS WARM
-
-    COLD
-;
-
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-[THEN]
-
-
-
-
-
-; -----------------------------------
-; RC5toLCD.4th
-; -----------------------------------
-
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
-[DEFINED] ASM [IF]
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -34186,8 +16912,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -34197,70 +16924,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-CODE LCD_WrC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-CODE LCD_WrF
+CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us
-;
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
+    GOTO BW1
 ENDCODE
 
-CODE LCD_RdS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -34277,13 +16952,11 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
 ASM RC5_INT
+ADD #2,R1
 $1806 @ 16000 = [IF]
     MOV #1,&$3A0
 [THEN]
@@ -34327,47 +17000,45 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WrC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
 ASM BACKGROUND
-BIS #$180A,R2
+BEGIN
+    CALL &$1814
+    BIS &$180A,R2
+AGAIN
 ENDASM
-CODENNM
-JMP BACKGROUND
-ENDCODE DROP
-
-
 
 CODE STOP
-    MOV #SLEEP,R9
+BW1 MOV #SLEEP,R9
     ADD #4,R9
     MOV R9,-2(R9)
 COLON
 ['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed." CR
-."    type START to restart"
+." RC5toLCD is removed. type START to restart"
 COLD
 ;
 
-CODE START
+CODE APP_INIT
 MOV #%1011010100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
@@ -34388,42 +17059,49 @@ $1806 @ 24000 = [IF]
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
 BIC #1,&$130
 BIS.B #3,&$20D
 MOV &$1808,R8
 CMP #4,R8
-0= ?JMP STOP
-COLON
-    $03E8 20_US
-    $03 TOP_LCD
-    $CD 20_US
-    $03 TOP_LCD
-    $5 20_US
-    $03 TOP_LCD
-    $2 20_US
-    $02 TOP_LCD
-    $2 20_US
-    $28 LCD_WRF
-    $08 LCD_WRF
-    LCD_Clear
-    $06 LCD_WRF
-    $0C LCD_WRF
-    LCD_Clear
+0= ?GOTO BW1
+COLON
+    #1000 20_US
+    %011 TOP_LCD
+    #205 20_US
+    %011 TOP_LCD
+    #5 20_US
+    %011 TOP_LCD
+    #2 20_US
+    %010 TOP_LCD
+    #2 20_US
+    %00101000 LCD_WRF
+    %1000 LCD_WRF
+    LCD_CLEAR
+    %0110 LCD_WRF
+    %1100 LCD_WRF
+    LCD_CLEAR
     ['] LCD_HOME IS CR
     ['] LCD_WRC  IS EMIT
     CR ." I love you"
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
+
+
 ECHO
             ; downloading RC5toLCD.4th is done
 RST_HERE    ; this app is protected against <reset>
index 884d44b..9bcf374 100644 (file)
@@ -3,37 +3,12 @@
 ; RC5TOLCD.4th
 ; -----------------------------------
 
-PWR_STATE
+RST_STATE
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]
-
-CODE MAX
-    CMP @R15,R14
-    S<  ?GOTO FW1
-BW1 ADD #2,R15
-    MOV @R13+,R0
-ENDCODE
-
-CODE MIN
-    CMP @R15,R14
-    S<  ?GOTO BW1
-FW1 MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-
-[THEN]
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
 CODE 20_US
 BEGIN
     BEGIN
@@ -64,8 +39,9 @@ THEN
     MOV @R13+,R0
 ENDCODE
 
-CODE LCD_W
-    SUB #2,R15
+CODE LCD_WRC
+    BIS.B #2,&$243
+BW1 SUB #2,R15
     MOV R14,0(R15)
     RRUM #4,R14
     BIC.B #1,&$243
@@ -75,70 +51,18 @@ COLON
     TOP_LCD 2 20_US 
 ;
 
-CODE LCD_WRC
-    BIS.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
 CODE LCD_WRF
     BIC.B #2,&$243
-    JMP LCD_W 
-ENDCODE
-
-: LCD_CLEAR 
-    $01 LCD_WRF 100 20_us
-;
-
-: LCD_HOME 
-    $02 LCD_WRF 100 20_us 
-;
-
-[UNDEFINED] OR [IF]
-
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
+    GOTO BW1
 ENDCODE
 
-[THEN]
-
-: LCD_ENTRY_SET     $04 OR LCD_WrF ;
-
-: LCD_DSP_CTRL      $08 OR LCD_WrF ;
-
-: LCD_DSP_SHIFT     $10 OR LCD_WrF ;
-
-: LCD_FN_SET        $20 OR LCD_WrF ;
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-: LCD_CGRAM_SET     $40 OR LCD_WrF ;
-
-: LCD_GOTO          $80 OR LCD_WrF ;
-
-CODE LCD_R
-    BIC.B #$0F,&$224
-    BIS.B #1,&$243
-COLON
-    TOP_LCD 2 20_us
-    TOP_LCD 2 20_us
-HI2LO
-    RLAM #4,0(R15)
-    ADD.B @R15+,R14
-    MOV @R1+,R13
-    MOV @R13+,R0
-ENDCODE
-
-CODE LCD_RDS
-    BIC.B #2,&$243
-    JMP LCD_R
-ENDCODE
-
-CODE LCD_RDC
-    BIS.B #2,&$243
-    JMP LCD_R
-ENDCODE
 
 
 ASM WDT_INT
+ADD #2,R1
 BIT.B #$20,&$240
 0= IF
     CMP #19,&$3D6
@@ -155,13 +79,11 @@ ELSE
     THEN
 THEN
 BW1
-BW2
-BW3
-BIC #$78,0(R1)
-RETI
+MOV @R1+,R0
 ENDASM
 
 ASM RC5_INT
+ADD #2,R1
 $1806 @ 16000 = [IF]
     MOV #1,&$3A0
 [THEN]
@@ -205,44 +127,45 @@ THEN
 RRUM    #3,R11
 XOR     @R1,R11
 BIT     #$400,R11
-0= ?GOTO BW2
+0= ?GOTO BW1
 XOR #$400,0(R1)
-SUB #4,R15
-MOV &BASE,2(R15)
-MOV #$10,&BASE
-MOV R14,0(R15)
-MOV R9,R14
+SUB #8,R15
+MOV R14,6(R15)
+MOV &$1DDC,4(R15)
+MOV #$10,&$1DDC
+MOV R9,0(R15)
+MOV #0,R14
 LO2HI
-    ['] LCD_CLEAR IS CR
-    ['] LCD_WRC  IS EMIT
-    CR ." $" 2 U.R
-    ['] CR >BODY IS CR
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
     ['] EMIT >BODY IS EMIT
 HI2LO
-MOV R14,&BASE
+MOV @R15+,&$1DDC
 MOV @R15+,R14
-GOTO BW3
+MOV @R1+,R0
 ENDASM
 
 ASM BACKGROUND
 BEGIN
+    CALL &$1814
     BIS &$180A,R2
 AGAIN
 ENDASM
 
 CODE STOP
-    MOV #SLEEP,R9
+BW1 MOV #SLEEP,R9
     ADD #4,R9
     MOV R9,-2(R9)
 COLON
 ['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed." CR
-."    type START to restart"
+." RC5toLCD is removed. type START to restart"
 COLD
 ;
 
-CODE START
+CODE APP_INIT
 MOV #%1011010100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
@@ -263,16 +186,14 @@ $1806 @ 24000 = [IF]
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
     MOV #%0100010100,&$340
-    MOV ##1638,&$352
+    MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
-    MOV #SLEEP,R9
-    MOV #BACKGROUND,2(R9)
 BIC #1,&$130
 BIS.B #3,&$20D
 MOV &$1808,R8
 CMP #4,R8
-0= ?JMP STOP
+0= ?GOTO BW1
 COLON
     #1000 20_US
     %011 TOP_LCD
@@ -295,10 +216,17 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM
     ABORT
 ;
 
+CODE START
+MOV #SLEEP,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #APP_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
 ECHO
             ; downloading RC5toLCD.4th is done
 RST_HERE    ; this app is protected against <reset>
index ec442ef..0d9145b 100644 (file)
@@ -27,6 +27,50 @@ ENDCODE
 
 [THEN]
 
+[UNDEFINED] CONSTANT [IF]
+: CONSTANT 
+DEFER
+HI2LO
+MOV @R1+,R13
+MOV #$1285,-4(R10)
+MOV R14,-2(R10)
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] BL [IF]
+#32 CONSTANT BL
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+CODE SPACES
+CMP #0,R14
+0<> IF
+    PUSH R13
+    BEGIN
+        LO2HI
+        BL EMIT
+        HI2LO
+        SUB #2,R13 
+        SUB #1,R14
+    0= UNTIL
+    MOV @R1+,R13
+THEN
+MOV @R15+,R14
+MOV @R13+,R0              
+ENDCODE
+[THEN]
+
+[UNDEFINED] OVER [IF]
+CODE OVER
+MOV R14,-2(R15)
+MOV @R15,R14
+SUB #2,R15
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
 [UNDEFINED] U.R [IF]
 : U.R
   >R  <# 0 # #S #>  
@@ -50,7 +94,7 @@ COLON
 ;
 
 : DATE!
-DEPTH 2 > IF
+2 DEPTH U< IF
     HI2LO
     MOV     R14,&$4B6
     MOV.B   @R15,&$4B5
@@ -79,7 +123,7 @@ COLON
 ;
 
 : TIME!
-DEPTH 2 > IF
+2 DEPTH U< IF
     HI2LO
     MOV     R14,&$4B0
     MOV.B   @R15,&$4B1
@@ -97,8 +141,8 @@ RST_HERE
 
 : ESC #27 EMIT ;
 
-: [DEFERRED]
-    ' @ $4030 =
+: [ISDEFERRED?]
+    DUP @ $4030 =
 ; IMMEDIATE
 
 CREATE ABUF 20 ALLOT
@@ -112,18 +156,16 @@ ESC ." [1J"
 ESC ." [H"
 
 CR ." DATE (DMY): "
-ABUF ABUF 20 
-     [DEFERRED] ACCEPT 
-     [IF] ['] ACCEPT >BODY EXECUTE
-     [ELSE] ACCEPT
-     [THEN]
+ABUF DUP 20 
+    ['] ACCEPT [ISDEFERRED?] 
+    [IF] >BODY
+    [THEN] EXECUTE
 EVALUATE CR DATE!
 CR CR ." TIME (HMS): "
-ABUF ABUF 20 
-     [DEFERRED] ACCEPT 
-     [IF] ['] ACCEPT >BODY EXECUTE
-     [ELSE] ACCEPT
-     [THEN]
+ABUF DUP 20 
+    ['] ACCEPT [ISDEFERRED?] 
+    [IF] >BODY
+    [THEN] EXECUTE
 EVALUATE CR TIME!
 CR
 ;
index fe00008..63c8b99 100644 (file)
@@ -9,9 +9,9 @@ PWR_STATE
 
 MARKER {SD_TEST}
 
-[UNDEFINED] AND [IF]
-CODE AND
-AND @R15+,R14
+[UNDEFINED] PLUS [IF]
+CODE +
+ADD @R15+,R14
 MOV @R13+,R0
 ENDCODE
 [THEN]
@@ -20,18 +20,58 @@ ENDCODE
     CODE MAX
         CMP @R15,R14
         S< ?GOTO FW1
-    BW1 ADD #2,R15
+BW1     ADD #2,R15
         MOV @R13+,R0
     ENDCODE
 
     CODE MIN
         CMP @R15,R14
         S< ?GOTO BW1
-    FW1 MOV @R15+,R14
+FW1     MOV @R15+,R14
         MOV @R13+,R0
     ENDCODE
 [THEN]
 
+[UNDEFINED] C@ [IF]
+CODE C@
+MOV.B @R14,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+: SPACE
+$20 EMIT ;
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+CODE SPACES
+CMP #0,R14
+0<> IF
+    PUSH R13
+    BEGIN
+        LO2HI
+        $20 EMIT
+        HI2LO
+        SUB #2,R13 
+        SUB #1,R14
+    0= UNTIL
+    MOV @R1+,R13
+THEN
+MOV @R15+,R14
+MOV @R13+,R0              
+ENDCODE
+[THEN]
+
+[UNDEFINED] OVER [IF]
+CODE OVER
+MOV R14,-2(R15)
+MOV @R15,R14
+SUB #2,R15
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
 [UNDEFINED] U.R [IF]
 : U.R
 >R  <# 0 # #S #>  
@@ -42,25 +82,40 @@ R> OVER - 0 MAX SPACES TYPE
 [UNDEFINED] DUMP [IF]
 CODE DUMP
 PUSH R13
-PUSH &BASE
-MOV #$10,&BASE
+PUSH &$1DDC
+MOV #$10,&$1DDC
 ADD @R15,R14
 LO2HI
-  SWAP OVER OVER
-  U.  U.
-  $FFF0 AND
+  SWAP
   DO  CR
-    I 7 U.R SPACE
-      I $10 + I
+    I 4 U.R SPACE
+      I 8 + I
+      DO I C@ 3 U.R LOOP
+      SPACE
+      I $10 + I 8 +
       DO I C@ 3 U.R LOOP  
       SPACE SPACE
       I $10 + I
-      DO I C@ $7E MIN BL MAX EMIT LOOP
+      DO I C@ $7E MIN $20 MAX EMIT LOOP
   $10 +LOOP
-  R> BASE !
+  R> $1DDC !
 ;
 [THEN]
 
+
+CODE SD_EMIT
+CMP #512,&$201E
+U>= IF
+    MOV #WRITE,R9
+    CALL 2(R9)
+THEN
+MOV &$201E,R8
+MOV.B R14,$1E00(R8)
+ADD #1,&$201E
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+
 : SD_TEST
 PWR_HERE
 CR
index daa0a8d..eb44ae8 100644 (file)
@@ -3,16 +3,19 @@
 ; SD_TOOLS.4th : BASIC TOOLS for SD Card : DIR FAT SECTOR CLUSTER
 ; ---------------------------------------------------------------
 
-: DEFINED! ECHO 1 ABORT" already loaded!" ;
-
-[DEFINED] {SD_TOOLS} [IF] DEFINED!
-
-[ELSE]
+[UNDEFINED] {SD_TOOLS} [IF]
 
 PWR_STATE
 
 MARKER {SD_TOOLS}
 
+[UNDEFINED] + [IF]
+CODE +
+ADD @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
 [UNDEFINED] MAX [IF]
 
 CODE MAX
@@ -31,75 +34,105 @@ ENDCODE
 
 [THEN]
 
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
+[UNDEFINED] C@ [IF]
+CODE C@
+MOV.B @R14,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+: SPACE
+$20 EMIT ;
 [THEN]
 
-[UNDEFINED] AND [IF]
+[UNDEFINED] SPACES [IF]
+CODE SPACES
+CMP #0,R14
+0<> IF
+    PUSH R13
+    BEGIN
+        LO2HI
+        $20 EMIT
+        HI2LO
+        SUB #2,R13 
+        SUB #1,R14
+    0= UNTIL
+    MOV @R1+,R13
+THEN
+MOV @R15+,R14
+MOV @R13+,R0              
+ENDCODE
+[THEN]
 
-CODE AND
-AND @R15+,R14
+[UNDEFINED] OVER [IF]
+CODE OVER
+MOV R14,-2(R15)
+MOV @R15,R14
+SUB #2,R15
 MOV @R13+,R0
 ENDCODE
+[THEN]
 
+[UNDEFINED] U.R [IF]
+: U.R
+  >R  <# 0 # #S #>  
+  R> OVER - 0 MAX SPACES TYPE
+;
 [THEN]
 
 [UNDEFINED] DUMP [IF]
 CODE DUMP
 PUSH R13
-PUSH &BASE
-MOV #$10,&BASE
+PUSH &$1DDC
+MOV #$10,&$1DDC
 ADD @R15,R14
 LO2HI
-  SWAP OVER OVER
-  U. U.
-  $FFF0 AND
+  SWAP
   DO  CR
-    I 7 U.R SPACE
-      I $10 + I
+    I 4 U.R SPACE
+      I 8 + I
+      DO I C@ 3 U.R LOOP
+      SPACE
+      I $10 + I 8 +
       DO I C@ 3 U.R LOOP  
       SPACE SPACE
       I $10 + I
-      DO I C@ $7E MIN BL MAX EMIT LOOP
+      DO I C@ $7E MIN $20 MAX EMIT LOOP
   $10 +LOOP
-  R> BASE !
+  R> $1DDC !
 ;
 [THEN]
 
 CODE SECTOR
-    MOV     R14,R9
+BW1 MOV     R14,R9
     MOV     @R15,R10
     CALL    &$1818
 COLON
     <# #S #> TYPE SPACE
     $1E00 $200 DUMP CR ;
 
-CODE FAT
-    SUB     #4,R15
-    MOV     R14,2(R15)
-    MOV     &$2008,0(R15)
-    MOV     #0,R14
-    JMP     SECTOR
-ENDCODE
-
 CODE CLUSTER
-    MOV.B &$2012,R10
+BW2 MOV.B &$2012,R10
     MOV @R15,R9
-    RRA R10
-    U< IF
-        BEGIN
-            ADD R9,R9
-            ADDC R14,R14
-            RRA R10
-        U>= UNTIL
-    THEN
+    GOTO FW1
+    BEGIN
+        ADD R9,R9
+        ADDC R14,R14
+FW1     RRA R10
+    U>= UNTIL
     ADD     &$2010,R9
     MOV     R9,0(R15)      
     ADDC    #0,R14
-    JMP     SECTOR
+    GOTO    BW1
+ENDCODE
+
+CODE FAT
+    SUB     #4,R15
+    MOV     R14,2(R15)
+    MOV     &$2008,0(R15)
+    MOV     #0,R14
+    GOTO    BW1
 ENDCODE
 
 CODE DIR
@@ -107,7 +140,12 @@ CODE DIR
     MOV     R14,2(R15)
     MOV     &$202C,0(R15)
     MOV     &$202E,R14
-    JMP     CLUSTER
+    CMP     #0,R14
+    0<>     ?GOTO BW2
+    CMP     #1,0(R15)
+    0<>     ?GOTO BW2
+    MOV     &$200E,0(R15)
+    GOTO    BW1
 ENDCODE
 
 
@@ -115,7 +153,3 @@ RST_HERE
 
 [THEN]
 ECHO
-; added : FAT to DUMP first sector of FAT1 and DIR for that of current DIRectory.
-; added : SECTOR to DUMP a sector and CLUSTER for first sector of a cluster:
-;         include a decimal point to force 32 bits number, example : .2 CLUSTER
-
index 740c74f..dbf5c4c 100644 (file)
@@ -7,6 +7,119 @@ ECHO
 
 PWR_STATE
 
+[UNDEFINED] PLUS [IF]
+CODE +
+ADD @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] MAX [IF]
+
+CODE MAX
+    CMP @R15,R14
+    S<  ?GOTO FW1
+BW1 ADD #2,R15
+    MOV @R13+,R0
+ENDCODE
+
+CODE MIN
+    CMP @R15,R14
+    S<  ?GOTO BW1
+FW1 MOV @R15+,R14
+    MOV @R13+,R0
+ENDCODE
+
+[THEN]
+
+[UNDEFINED] C@ [IF]
+CODE C@
+MOV.B @R14,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] CONSTANT [IF]
+: CONSTANT 
+DEFER
+HI2LO
+MOV @R1+,R13
+MOV #$1285,-4(R10)
+MOV R14,-2(R10)
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] BL [IF]
+#32 CONSTANT BL
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+: SPACE
+BL EMIT ;
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+CODE SPACES
+CMP #0,R14
+0<> IF
+    PUSH R13
+    BEGIN
+        LO2HI
+        BL EMIT
+        HI2LO
+        SUB #2,R13 
+        SUB #1,R14
+    0= UNTIL
+    MOV @R1+,R13
+THEN
+MOV @R15+,R14
+MOV @R13+,R0              
+ENDCODE
+[THEN]
+
+[UNDEFINED] OVER [IF]
+CODE OVER
+MOV R14,-2(R15)
+MOV @R15,R14
+SUB #2,R15
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] U.R [IF]
+: U.R
+  >R  <# 0 # #S #>  
+  R> OVER - 0 MAX SPACES TYPE
+;
+[THEN]
+
+[UNDEFINED] DUMP [IF]
+CODE DUMP
+PUSH R13
+PUSH &$1DDC
+MOV #$10,&$1DDC
+ADD @R15,R14
+LO2HI
+  SWAP
+  DO  CR
+    I 4 U.R SPACE
+      I 8 + I
+      DO I C@ 3 U.R LOOP
+      SPACE
+      I $10 + I 8 +
+      DO I C@ 3 U.R LOOP  
+      SPACE SPACE
+      I $10 + I
+      DO I C@ $7E MIN BL MAX EMIT LOOP
+  $10 +LOOP
+  R> $1DDC !
+;
+[THEN]
+
+PWR_HERE
+
 ; --------------------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES IV : Adda|Cmpa|Mova|Suba (without extended word)
 ; --------------------------------------------------------------------------------
@@ -384,11 +497,11 @@ PWR_STATE
 
 
 : %.
-BASE @ %10 BASE ! SWAP 8 EMIT . BASE !
+$1DDC @ %10 $1DDC ! SWAP 8 EMIT . $1DDC !
 ;
 
 : %U.
-BASE @ %10 BASE ! SWAP 8 EMIT U. BASE ! ;
+$1DDC @ %10 $1DDC ! SWAP 8 EMIT U. $1DDC ! ;
 
 PWR_HERE
 
@@ -404,7 +517,7 @@ RRUX R8
 SUB #2,R15
 MOV R14,0(R15)
 MOV R8,R14
-JMP %.
+MOV #%.,R0
 ENDCODE
 
 RRUX_T ; you should see %111100001111000 --> %
@@ -418,12 +531,12 @@ PWR_STATE
 
 CODE RRUX_T
 MOV #$F0F0,R8
-RPT #0
+RPT #1
 RRUX R8
 SUB #2,R15
 MOV R14,0(R15)
 MOV R8,R14
-JMP %.
+MOV #%.,R0
 ENDCODE
 
 RRUX_T ; you should see %111100001111000 --> %
@@ -432,12 +545,12 @@ PWR_STATE
 
 CODE RRUX_T
 MOV #$F0F0,R8
-RPT #3
+RPT #4
 RRUX R8
 SUB #2,R15
 MOV R14,0(R15)
 MOV R8,R14
-JMP %.
+MOV #%.,R0
 ENDCODE
 
 RRUX_T ; you should see %111100001111 --> %
@@ -446,12 +559,12 @@ PWR_STATE
 
 CODE RRUX_T
 MOV #$F0F0,R8
-RPT #7
+RPT #8
 RRUX R8
 SUB #2,R15
 MOV R14,0(R15)
 MOV R8,R14
-JMP %.
+MOV #%.,R0
 ENDCODE
 
 RRUX_T ; you should see %11110000 --> %
@@ -471,7 +584,7 @@ RRCX R8
 SUB #2,R15
 MOV R14,0(R15)
 MOV R8,R14
-JMP %U.
+MOV #%U.,R0
 ENDCODE
 
 RRCX_T ; you should see %100000000000000 --> %
@@ -485,12 +598,12 @@ PWR_STATE
 CODE RRCX_T
 MOV #$8000,R8
 BIC #1,R2
-RPT #0
+RPT #1
 RRCX R8
 SUB #2,R15
 MOV R14,0(R15)
 MOV R8,R14
-JMP %U.
+MOV #%U.,R0
 ENDCODE
 
 RRCX_T ; you should see %100000000000000 --> %
@@ -500,12 +613,12 @@ PWR_STATE
 CODE RRCX_T
 MOV #$8000,R8
 BIC #1,R2
-RPT #7
+RPT #8
 RRCX R8
 SUB #2,R15
 MOV R14,0(R15)
 MOV R8,R14
-JMP %U.
+MOV #%U.,R0
 ENDCODE
 
 RRCX_T ; you should see %10000000 --> %
@@ -523,7 +636,7 @@ RRAX R8
 SUB #2,R15
 MOV R14,0(R15)
 MOV R8,R14
-JMP %.
+MOV #%.,R0
 ENDCODE
 
 RRAX_T ; you should see %-100000000000000 --> %
@@ -537,12 +650,12 @@ PWR_STATE
 
 CODE RRAX_T
 MOV #$8000,R8
-RPT #0
+RPT #1
 RRAX R8
 SUB #2,R15
 MOV R14,0(R15)
 MOV R8,R14
-JMP %.
+MOV #%.,R0
 ENDCODE
 
 RRAX_T ; you should see %-100000000000000 --> %
@@ -551,12 +664,12 @@ PWR_STATE
 
 CODE RRAX_T
 MOV #$8000,R8
-RPT #1
+RPT #2
 RRAX R8
 SUB #2,R15
 MOV R14,0(R15)
 MOV R8,R14
-JMP %.
+MOV #%.,R0
 ENDCODE
 
 RRAX_T ; you should see %-10000000000000 --> %
@@ -565,12 +678,12 @@ PWR_STATE
 
 CODE RRAX_T
 MOV #$8000,R8
-RPT #2
+RPT #3
 RRAX R8
 SUB #2,R15
 MOV R14,0(R15)
 MOV R8,R14
-JMP %.
+MOV #%.,R0
 ENDCODE
 
 RRAX_T ; you should see %-1000000000000 --> %
@@ -579,12 +692,12 @@ PWR_STATE
 
 CODE RRAX_T
 MOV #$8000,R8
-RPT #6
+RPT #7
 RRAX R8
 SUB #2,R15
 MOV R14,0(R15)
 MOV R8,R14
-JMP %.
+MOV #%.,R0
 ENDCODE
 
 RRAX_T ; you should see %-100000000 --> %
@@ -616,7 +729,7 @@ PWR_STATE
 
 CODE RLAX_T
 MOV #-1,R8
-RPT #0
+RPT #1
 ADDX R8,R8
 SUB #2,R15
 MOV R14,0(R15)
@@ -630,7 +743,7 @@ PWR_STATE
 
 CODE RLAX_T
 MOV #-1,R8
-RPT #1
+RPT #2
 ADDX R8,R8
 SUB #2,R15
 MOV R14,0(R15)
@@ -644,7 +757,7 @@ PWR_STATE
 
 CODE RLAX_T
 MOV #-1,R8
-RPT #2
+RPT #3
 ADDX R8,R8
 SUB #2,R15
 MOV R14,0(R15)
@@ -658,7 +771,7 @@ PWR_STATE
 
 CODE RLAX_T
 MOV #-1,R8
-RPT #7
+RPT #8
 ADDX R8,R8
 SUB #2,R15
 MOV R14,0(R15)
@@ -697,7 +810,7 @@ PWR_STATE
 CODE ADDX_T
 MOV #0,R8
 MOV #-1,R9
-RPT #0
+RPT #1
 ADDX R9,R8
 SUB #2,R15
 MOV R14,0(R15)
@@ -712,7 +825,7 @@ PWR_STATE
 CODE ADDX_T
 MOV #0,R8
 MOV #-1,R9
-RPT #1
+RPT #2
 ADDX R9,R8
 SUB #2,R15
 MOV R14,0(R15)
@@ -727,7 +840,7 @@ PWR_STATE
 CODE ADDX_T
 MOV #0,R8
 MOV #-1,R9
-RPT #7
+RPT #8
 ADDX R9,R8
 SUB #2,R15
 MOV R14,0(R15)
@@ -767,7 +880,7 @@ PWR_STATE
 CODE SUBX_T
 MOV #0,R8
 MOV #-1,R9
-RPT #0
+RPT #1
 SUBX R9,R8
 SUB #2,R15
 MOV R14,0(R15)
@@ -782,7 +895,7 @@ PWR_STATE
 CODE SUBX_T
 MOV #0,R8
 MOV #-1,R9
-RPT #1
+RPT #2
 SUBX R9,R8
 SUB #2,R15
 MOV R14,0(R15)
@@ -797,7 +910,7 @@ PWR_STATE
 CODE SUBX_T
 MOV #0,R8
 MOV #-1,R9
-RPT #7
+RPT #8
 SUBX R9,R8
 SUB #2,R15
 MOV R14,0(R15)
@@ -855,3 +968,4 @@ ENDCODE
 
 SUBX_T ; you should see 2 -->
 
+RST_STATE
index 4134fbc..fb92b9c 100644 (file)
@@ -37,7 +37,7 @@ LOOP_TEST   \ you should see 0 1 2 3 4 5 6 7 -->
 ;
 
  : FIND_TEST            \ FIND_TEST <word>     --
-    BL WORD             \ -- c-addr
+    $20 WORD             \ -- c-addr
         50000 0 
         DO              \ -- c-addr 
             DUP   
@@ -51,35 +51,35 @@ LOOP_TEST   \ you should see 0 1 2 3 4 5 6 7 -->
       
 \ seeking $ word, FIND jumps all words on their first character so time of word loop is 20 cycles
 \ see FIND in the source file for more information
-  
+\  
 \ FIND_TEST <lastword> result @ 8MHz, monothread : 1,2s  
-
+\
 \ FIND_TEST $ results @ 8MHz, monothread, 201 words in vocabulary FORTH :
 \ 27 seconds with only FORTH vocabulary in CONTEXT
 \ 540 us for one search ( which gives the delay for QNUMBER in INTERPRET routine)
 \ 2.6866 us / word, 21,49 cycles / word (for 20 cycles calculated (see FIND in source file)
-
-
+\
+\
 \ FIND_TEST $ results @ 8MHz, 2 threads, 201 words in vocabulary FORTH :
 \ 13 second with only FORTH vocabulary in CONTEXT
 \ 260 us for one search ( which gives the delay for QNUMBER in INTERPRET routine)
 \ 1,293 us / word, 10,34 cycles / word
-
+\
 \ FIND_TEST $ results @ 8MHz, 4 threads, 201 words in vocabulary FORTH :
 \ 8 second with only FORTH vocabulary in CONTEXT
 \ 160 us for one search ( which gives the delay for QNUMBER in INTERPRET routine)
 \ 0,796 us / word, 6,37 cycles / word 
-
+\
 \ FIND_TEST $ results @ 8MHz, 8 threads, 201 words in vocabulary FORTH :
 \ 4.66 second with only FORTH vocabulary in CONTEXT
 \ 93 us for one search ( which gives the delay for QNUMBER in INTERPRET routine)
 \ 0,4463 us / word, 3,7 cycles / word  
-
+\
 \ FIND_TEST $ results @ 8MHz, 16 threads, 201 words in vocabulary FORTH :
 \ 2,8 second with only FORTH vocabulary in CONTEXT
 \ 56 us for one search ( which gives the delay for QNUMBER in INTERPRET routine)
 \ 0,278 us / word, 2,22 cycles / word  
-
+\
 \ --------
 \ KEY test
 \ --------
index 950c421..ecdd66f 100644 (file)
@@ -4,11 +4,7 @@
 ; ------------------------------------------------------------------------------
 
 
-: DEFINED! ECHO 1 ABORT" already loaded!" ;
-
-[DEFINED] {TOOLS} [IF] DEFINED!
-
-[ELSE]
+[UNDEFINED] {TOOLS} [IF]
 
 PWR_STATE
 
@@ -21,6 +17,30 @@ CODE ?
 ENDCODE
 [THEN]
 
+[UNDEFINED] SPACE [IF]
+: SPACE
+$20 EMIT ;
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+CODE SPACES
+CMP #0,R14
+0<> IF
+    PUSH R13
+    BEGIN
+        LO2HI
+        $20 EMIT
+        HI2LO
+        SUB #2,R13 
+        SUB #1,R14
+    0= UNTIL
+    MOV @R1+,R13
+THEN
+MOV @R15+,R14
+MOV @R13+,R0              
+ENDCODE
+[THEN]
+
 [UNDEFINED] .S [IF]
 CODE .S
     MOV     R14,-2(R15)
@@ -38,16 +58,16 @@ COLON
     .
     $08 EMIT
     $3E EMIT SPACE
-    OVER OVER >
-    0= IF 
+    2DUP 1+
+    U< IF 
         DROP DROP EXIT
     THEN
-    BASE @ >R
-    $10 BASE !
+    $1DDC @ >R
+    $10 $1DDC !
     DO 
         I @ U.
     2 +LOOP
-    R> BASE !
+    R> $1DDC !
 ;
 [THEN]
 
@@ -60,36 +80,51 @@ CODE .RS
 ENDCODE
 [THEN]
 
-[UNDEFINED] AND [IF]
+[UNDEFINED] + [IF]
+CODE +
+ADD @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] C@ [IF]
+CODE C@
+MOV.B @R14,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
 
+[UNDEFINED] AND [IF]
 CODE AND
 AND @R15+,R14
 MOV @R13+,R0
 ENDCODE
-
 [THEN]
 
-[UNDEFINED] PAD [IF]
-
-$1CE4 CONSTANT PAD
-
+[UNDEFINED] ROT [IF]
+CODE ROT
+MOV @R15,R10
+MOV R14,0(R15)
+MOV 2(R15),R14
+MOV R10,2(R15)
+MOV @R13+,R0
+ENDCODE
 [THEN]
 
-
 [UNDEFINED] WORDS [IF]
 : WORDS
 CR 
-$1DCA @ PAD
+$1DCA @ $1CE4
 $1800 @ DUP +
 MOVE
 BEGIN
     0 DUP
     $1800 @ DUP + 0
         DO
-        DUP I PAD + @
+        DUP I $1CE4 + @
             U< IF
                 DROP DROP
-                I DUP PAD + @
+                I DUP $1CE4 + @
             THEN
         2 +LOOP
     ?DUP
@@ -97,7 +132,7 @@ WHILE
     DUP
     2 - @
     ROT
-    PAD +
+    $1CE4 +
     !
     DUP
     COUNT $7F AND
@@ -113,18 +148,27 @@ DROP
     CODE MAX
         CMP @R15,R14
         S< ?GOTO FW1
-    BW1 ADD #2,R15
+BW1     ADD #2,R15
         MOV @R13+,R0
     ENDCODE
 
     CODE MIN
         CMP @R15,R14
         S< ?GOTO BW1
-    FW1 MOV @R15+,R14
+FW1     MOV @R15+,R14
         MOV @R13+,R0
     ENDCODE
 [THEN]
 
+[UNDEFINED] OVER [IF]
+CODE OVER
+MOV R14,-2(R15)
+MOV @R15,R14
+SUB #2,R15
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
 [UNDEFINED] U.R [IF]
 : U.R
 >R  <# 0 # #S #>  
@@ -135,11 +179,11 @@ R> OVER - 0 MAX SPACES TYPE
 [UNDEFINED] DUMP [IF]
 CODE DUMP
 PUSH R13
-PUSH &BASE
-MOV #$10,&BASE
+PUSH &$1DDC
+MOV #$10,&$1DDC
 ADD @R15,R14
 LO2HI
-  SWAP OVER OVER
+  SWAP 2DUP
   U. U.
   $FFF0 AND
   DO  CR
@@ -151,13 +195,12 @@ LO2HI
       DO I C@ 3 U.R LOOP  
       SPACE SPACE
       I $10 + I
-      DO I C@ $7E MIN BL MAX EMIT LOOP
+      DO I C@ $7E MIN $20 MAX EMIT LOOP
   $10 +LOOP
-  R> BASE !
+  R> $1DDC !
 ;
 [THEN]
 
 RST_HERE
 
 [THEN]
-ECHO
index b39bc71..0f63114 100644 (file)
@@ -1,7 +1,7 @@
 \ -*- coding: utf-8 -*-
 
 ; -----------------------------------
-; PROG100k.f = 110 x RC5toLCD.f
+; PROG100k.f = 77 x RC5toLCD.f
 ; -----------------------------------
 
 \ TARGET SELECTION
 \
 \ rc5   <--- OUT IR_Receiver (1 TSOP32236)
 
-PWR_STATE
+RST_STATE
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -176,10 +131,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -188,107 +143,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -303,24 +228,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -375,45 +298,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -441,33 +381,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -484,7 +414,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -500,8 +430,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -516,132 +445,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -662,10 +538,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -674,107 +550,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -789,24 +635,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -861,45 +705,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -927,33 +788,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -970,7 +821,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -986,8 +837,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -1002,132 +852,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -1148,10 +945,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -1160,107 +957,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -1275,24 +1042,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -1347,51 +1112,68 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
-\ ------------------------------\
-    \
 
-CODE START                      \
 \ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
+
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
+\ ------------------------------\
+\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
+\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
+\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
+\                           --       \ID input divider \ 10 = /4
+\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
 \                                 -  \TBCLR TimerB Clear
 \                                  - \TBIE
 \                                   -\TBIFG
@@ -1413,33 +1195,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -1456,7 +1228,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -1472,8 +1244,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -1488,132 +1259,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
 
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -1634,10 +1352,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -1646,107 +1364,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -1761,24 +1449,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -1833,45 +1519,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -1899,33 +1602,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -1942,7 +1635,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -1958,8 +1651,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -1974,132 +1666,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -2120,10 +1759,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -2132,107 +1771,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -2247,24 +1856,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -2319,45 +1926,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -2385,33 +2009,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -2428,7 +2042,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -2444,8 +2058,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -2460,133 +2073,80 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
+    BEGIN
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
 \                               \ if read  : -- %0000RRRR
@@ -2606,10 +2166,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -2618,107 +2178,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -2733,24 +2263,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -2805,45 +2333,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -2871,33 +2416,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -2914,7 +2449,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -2930,8 +2465,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -2946,132 +2480,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -3092,10 +2573,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -3104,107 +2585,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -3219,24 +2670,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -3291,45 +2740,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -3357,33 +2823,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -3400,7 +2856,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -3416,8 +2872,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -3432,132 +2887,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -3578,10 +2980,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -3590,107 +2992,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -3705,24 +3077,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -3777,45 +3147,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -3843,33 +3230,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
+    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -3886,7 +3263,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -3902,8 +3279,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -3918,132 +3294,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -4064,10 +3387,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -4076,107 +3399,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -4191,24 +3484,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -4263,45 +3554,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -4329,33 +3637,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -4372,7 +3670,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -4388,8 +3686,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -4404,132 +3701,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -4550,10 +3794,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -4562,107 +3806,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -4677,24 +3891,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -4749,45 +3961,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -4815,33 +4044,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -4858,7 +4077,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -4874,8 +4093,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -4890,132 +4108,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -5036,10 +4201,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -5048,107 +4213,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
-    \
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -5163,24 +4298,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -5235,45 +4368,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -5301,33 +4451,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -5344,7 +4484,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -5360,8 +4500,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -5376,132 +4515,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -5522,10 +4608,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -5534,107 +4620,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -5649,24 +4705,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -5721,45 +4775,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -5787,33 +4858,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -5830,7 +4891,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -5846,8 +4907,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -5862,132 +4922,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -6008,10 +5015,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -6020,107 +5027,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -6135,24 +5112,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -6207,45 +5182,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -6273,33 +5265,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -6316,7 +5298,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -6332,8 +5314,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -6348,132 +5329,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -6494,10 +5422,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -6506,107 +5434,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -6621,24 +5519,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -6693,45 +5589,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -6759,33 +5672,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -6802,7 +5705,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -6818,8 +5721,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -6834,132 +5736,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -6980,10 +5829,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -6992,107 +5841,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
-    \
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -7107,24 +5926,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -7179,45 +5996,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -7245,33 +6079,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -7288,7 +6112,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -7304,8 +6128,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -7320,132 +6143,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
 
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -7466,10 +6236,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -7478,107 +6248,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -7593,24 +6333,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -7665,45 +6403,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -7731,33 +6486,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -7774,7 +6519,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -7790,8 +6535,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -7806,132 +6550,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -7952,10 +6643,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -7964,107 +6655,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -8079,24 +6740,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -8151,45 +6810,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -8217,33 +6893,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -8260,7 +6926,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -8276,8 +6942,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -8292,132 +6957,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -8438,10 +7050,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -8450,107 +7062,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -8565,24 +7147,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -8637,45 +7217,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -8703,33 +7300,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -8746,7 +7333,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -8762,8 +7349,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -8778,132 +7364,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -8924,10 +7457,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -8936,107 +7469,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
-    \
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -9051,24 +7554,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -9123,45 +7624,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -9189,33 +7707,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -9232,7 +7740,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -9248,8 +7756,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -9264,132 +7771,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -9410,10 +7864,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -9422,107 +7876,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -9537,24 +7961,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -9609,45 +8031,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -9675,33 +8114,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -9718,7 +8147,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -9734,8 +8163,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -9750,132 +8178,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -9896,10 +8271,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -9908,107 +8283,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -10023,24 +8368,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -10095,45 +8438,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -10161,33 +8521,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -10204,7 +8554,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -10220,8 +8570,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -10236,132 +8585,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -10382,10 +8678,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -10394,107 +8690,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -10509,24 +8775,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -10581,45 +8845,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -10647,33 +8928,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -10690,7 +8961,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -10706,8 +8977,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -10722,132 +8992,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -10868,10 +9085,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -10880,107 +9097,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
-    \
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -10995,24 +9182,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -11067,45 +9252,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -11133,33 +9335,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -11176,7 +9368,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -11192,8 +9384,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -11208,132 +9399,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
 
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -11354,10 +9492,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -11366,107 +9504,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -11481,24 +9589,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -11553,45 +9659,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
-\ ------------------------------\
-    \
 
-CODE START                      \
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
+
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -11619,33 +9742,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -11662,7 +9775,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -11678,8 +9791,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -11694,132 +9806,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -11840,10 +9899,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -11852,107 +9911,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -11967,24 +9996,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -12039,45 +10066,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -12105,33 +10149,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -12148,7 +10182,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -12164,8 +10198,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -12180,132 +10213,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -12326,10 +10306,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -12338,107 +10318,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -12453,24 +10403,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -12525,45 +10473,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -12591,33 +10556,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -12634,7 +10589,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -12650,8 +10605,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -12666,133 +10620,80 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
+    BEGIN
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
 \                               \ if read  : -- %0000RRRR
@@ -12812,10 +10713,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -12824,107 +10725,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
-    \
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -12939,24 +10810,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -13011,45 +10880,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -13077,33 +10963,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -13120,7 +10996,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -13136,8 +11012,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -13152,132 +11027,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
 
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -13298,10 +11120,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -13310,107 +11132,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -13425,24 +11217,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -13497,45 +11287,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -13563,33 +11370,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -13606,7 +11403,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -13622,8 +11419,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -13638,132 +11434,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -13784,10 +11527,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -13796,107 +11539,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -13911,24 +11624,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -13983,45 +11694,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -14049,33 +11777,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -14092,7 +11810,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -14108,8 +11826,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -14124,132 +11841,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -14270,10 +11934,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -14282,107 +11946,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -14397,24 +12031,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -14469,45 +12101,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -14535,33 +12184,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -14578,7 +12217,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -14594,8 +12233,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -14610,132 +12248,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -14756,10 +12341,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -14768,107 +12353,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -14883,24 +12438,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -14955,45 +12508,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -15021,33 +12591,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -15064,7 +12624,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -15080,8 +12640,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -15096,132 +12655,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -15242,10 +12748,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -15254,107 +12760,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -15369,24 +12845,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
+MOV #1778,X                     \ RC5_Period * 1us
+MOV #14,W                       \ count of loop
+BEGIN                           \
+\ ******************************\
+\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -15441,45 +12915,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -15507,33 +12998,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -15550,7 +13031,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -15566,8 +13047,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -15582,132 +13062,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -15728,10 +13155,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -15740,107 +13167,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
-    \
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -15855,24 +13252,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -15927,45 +13322,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -15993,33 +13405,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -16036,7 +13438,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -16052,8 +13454,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -16068,132 +13469,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
 
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -16214,10 +13562,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -16226,107 +13574,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -16341,24 +13659,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -16413,45 +13729,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -16479,33 +13812,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -16522,7 +13845,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -16538,8 +13861,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -16554,132 +13876,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
+MARKER {RC5TOLCD}
 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -16700,10 +13969,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -16712,107 +13981,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -16827,24 +14066,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -16899,45 +14136,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -16965,33 +14219,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -17008,7 +14252,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -17024,8 +14268,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -17040,132 +14283,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -17186,10 +14376,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -17198,107 +14388,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -17313,24 +14473,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -17385,45 +14543,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -17451,33 +14626,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -17494,7 +14659,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -17510,8 +14675,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -17526,132 +14690,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -17672,10 +14783,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -17684,107 +14795,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
-    \
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -17799,24 +14880,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -17871,47 +14950,64 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
-\ ------------------------------\
-    \
 
-CODE START                      \
 \ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
+
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
+\ ------------------------------\
+\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
 \                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
 \                           --       \ID input divider \ 10 = /4
@@ -17937,33 +15033,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -17980,7 +15066,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -17996,8 +15082,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -18012,132 +15097,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -18158,10 +15190,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -18170,107 +15202,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -18285,24 +15287,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -18357,45 +15357,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -18423,33 +15440,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -18466,7 +15473,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -18482,8 +15489,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -18498,132 +15504,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -18644,10 +15597,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -18656,107 +15609,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -18771,24 +15694,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -18843,45 +15764,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -18909,33 +15847,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -18952,7 +15880,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -18968,8 +15896,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -18984,133 +15911,80 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
+    BEGIN
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
 \                               \ if read  : -- %0000RRRR
@@ -19130,10 +16004,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -19142,107 +16016,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -19257,24 +16101,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -19329,45 +16171,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -19395,33 +16254,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -19438,7 +16287,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -19454,8 +16303,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -19470,132 +16318,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -19616,10 +16411,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -19628,107 +16423,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -19743,24 +16508,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -19815,45 +16578,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -19881,33 +16661,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -19924,7 +16694,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -19940,8 +16710,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -19956,132 +16725,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -20102,10 +16818,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -20114,107 +16830,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -20229,24 +16915,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -20301,45 +16985,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -20367,33 +17068,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -20410,7 +17101,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -20426,8 +17117,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -20442,132 +17132,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -20588,10 +17225,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -20600,107 +17237,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -20715,24 +17322,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -20787,45 +17392,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -20853,33 +17475,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -20896,7 +17508,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -20912,8 +17524,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -20928,132 +17539,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -21074,10 +17632,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -21086,107 +17644,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -21201,24 +17729,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -21273,45 +17799,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -21339,33 +17882,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -21382,7 +17915,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -21398,8 +17931,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -21414,132 +17946,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -21560,10 +18039,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -21572,107 +18051,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -21687,24 +18136,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
+MOV #1778,X                     \ RC5_Period * 1us
+MOV #14,W                       \ count of loop
+BEGIN                           \
+\ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -21759,45 +18206,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -21825,33 +18289,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -21868,7 +18322,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -21884,8 +18338,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -21900,132 +18353,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -22046,10 +18446,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -22058,107 +18458,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -22173,24 +18543,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -22245,45 +18613,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -22311,33 +18696,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -22354,7 +18729,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -22370,8 +18745,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -22386,132 +18760,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -22532,10 +18853,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -22544,107 +18865,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
-    \
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -22659,24 +18950,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -22731,45 +19020,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -22797,33 +19103,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -22840,7 +19136,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -22856,8 +19152,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -22872,132 +19167,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
+MARKER {RC5TOLCD}
 
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -23018,10 +19260,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -23030,107 +19272,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -23145,24 +19357,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -23217,45 +19427,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -23283,33 +19510,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -23326,7 +19543,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -23342,8 +19559,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -23358,132 +19574,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -23504,10 +19667,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -23516,107 +19679,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -23631,24 +19764,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -23703,45 +19834,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -23769,33 +19917,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -23812,7 +19950,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -23828,8 +19966,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -23844,132 +19981,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -23990,10 +20074,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -24002,107 +20086,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -24117,24 +20171,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -24189,48 +20241,65 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
-\ ------------------------------\
-    \
 
-CODE START                      \
 \ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
+
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
+\ ------------------------------\
+\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
+\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
 \                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
 \                           --       \ID input divider \ 10 = /4
 \                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
@@ -24255,33 +20324,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -24298,7 +20357,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -24314,8 +20373,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -24330,132 +20388,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -24476,10 +20481,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -24488,107 +20493,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -24603,24 +20578,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -24675,45 +20648,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -24741,33 +20731,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -24784,7 +20764,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -24800,8 +20780,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -24816,132 +20795,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -24962,10 +20888,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -24974,107 +20900,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -25089,24 +20985,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -25161,45 +21055,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -25227,33 +21138,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -25270,7 +21171,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -25286,8 +21187,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -25302,133 +21202,80 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
+    BEGIN
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
 \                               \ if read  : -- %0000RRRR
@@ -25448,10 +21295,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -25460,107 +21307,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -25575,24 +21392,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -25647,45 +21462,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -25713,33 +21545,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -25756,7 +21578,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -25772,8 +21594,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -25788,132 +21609,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -25934,10 +21702,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -25946,107 +21714,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -26061,24 +21799,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -26133,45 +21869,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -26199,33 +21952,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -26242,7 +21985,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -26258,8 +22001,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -26274,132 +22016,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -26420,10 +22109,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -26432,107 +22121,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -26547,24 +22206,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -26619,45 +22276,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -26685,33 +22359,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -26728,7 +22392,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -26744,8 +22408,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -26760,132 +22423,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -26906,10 +22516,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -26918,107 +22528,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -27033,24 +22613,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -27105,45 +22683,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -27171,33 +22766,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -27214,7 +22799,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -27230,8 +22815,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -27246,132 +22830,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -27392,10 +22923,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -27404,107 +22935,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -27519,24 +23020,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -27591,45 +23090,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -27657,33 +23173,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -27700,7 +23206,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -27716,8 +23222,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -27732,132 +23237,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -27878,10 +23330,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -27890,107 +23342,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -28005,24 +23427,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
+MOV #1778,X                     \ RC5_Period * 1us
+MOV #14,W                       \ count of loop
+BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -28077,45 +23497,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -28143,33 +23580,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -28186,7 +23613,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -28202,8 +23629,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -28218,132 +23644,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -28364,10 +23737,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -28376,107 +23749,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -28491,24 +23834,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -28563,45 +23904,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -28629,33 +23987,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -28672,7 +24020,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -28688,8 +24036,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -28704,132 +24051,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -28850,10 +24144,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -28862,107 +24156,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -28977,24 +24241,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -29049,45 +24311,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -29115,33 +24394,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -29158,7 +24427,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -29174,8 +24443,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -29190,132 +24458,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -29336,10 +24551,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -29348,107 +24563,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
-    \
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -29463,24 +24648,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -29535,45 +24718,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -29601,33 +24801,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -29644,7 +24834,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -29660,8 +24850,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -29676,132 +24865,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
 
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -29822,10 +24958,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -29834,107 +24970,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -29949,24 +25055,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -30021,45 +25125,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -30087,33 +25208,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -30130,7 +25241,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -30146,8 +25257,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -30162,132 +25272,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -30308,10 +25365,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -30320,107 +25377,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -30435,24 +25462,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -30507,45 +25532,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -30573,33 +25615,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -30616,7 +25648,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -30632,8 +25664,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -30648,132 +25679,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -30794,10 +25772,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -30806,107 +25784,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -30921,24 +25869,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -30993,45 +25939,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -31059,33 +26022,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -31102,7 +26055,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -31118,8 +26071,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -31134,132 +26086,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -31280,10 +26179,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -31292,107 +26191,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -31407,24 +26276,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -31479,45 +26346,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -31545,33 +26429,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -31588,7 +26462,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -31604,8 +26478,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -31620,132 +26493,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -31766,10 +26586,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -31778,107 +26598,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
-    \
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -31893,24 +26683,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -31965,45 +26753,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -32031,33 +26836,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -32074,7 +26869,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -32090,8 +26885,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -32106,132 +26900,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -32252,10 +26993,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -32264,107 +27005,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -32379,24 +27090,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -32451,45 +27160,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -32517,33 +27243,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -32560,7 +27276,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -32576,8 +27292,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -32592,132 +27307,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -32738,10 +27400,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -32750,107 +27412,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -32865,24 +27497,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -32937,45 +27567,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -33003,33 +27650,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -33046,7 +27683,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -33062,8 +27699,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -33078,132 +27714,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -33224,10 +27807,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -33236,107 +27819,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
-    \
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -33351,24 +27904,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -33423,45 +27974,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -33489,33 +28057,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -33532,7 +28090,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -33548,8 +28106,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -33564,132 +28121,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
 
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -33710,10 +28214,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -33722,107 +28226,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -33837,24 +28311,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -33909,45 +28381,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -33975,33 +28464,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -34018,7 +28497,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -34034,8 +28513,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -34050,132 +28528,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -34196,10 +28621,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -34208,107 +28633,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -34323,24 +28718,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -34395,45 +28788,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -34461,33 +28871,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -34504,7 +28904,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -34520,8 +28920,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -34536,132 +28935,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -34682,10 +29028,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -34694,107 +29040,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -34809,24 +29125,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -34881,45 +29195,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -34947,33 +29278,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -34990,7 +29311,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -35006,8 +29327,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -35022,132 +29342,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -35168,10 +29435,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -35180,107 +29447,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -35295,24 +29532,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -35367,45 +29602,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -35433,33 +29685,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -35476,7 +29718,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -35492,8 +29734,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -35508,133 +29749,80 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
+    BEGIN
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
 
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
 \                               \ if read  : -- %0000RRRR
@@ -35654,10 +29842,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -35666,107 +29854,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -35781,24 +29939,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -35853,45 +30009,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -35919,33 +30092,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -35962,7 +30125,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -35978,8 +30141,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -35994,132 +30156,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
 
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -36140,10 +30249,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -36152,107 +30261,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
-    \
 
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -36267,24 +30346,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -36339,45 +30416,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
+\ ------------------------------\
+CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
-    \
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -36405,33 +30499,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -36448,7 +30532,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -36464,8 +30548,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -36480,132 +30563,79 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
+\ ------------------------------\
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
+\ ------------------------------\
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-    \
 MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
 
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
+CODE 20_US                      \ n --      n * 20 us
+BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
+        BIT #1,&LCD_TIM_CTL     \ 3
+    0<> UNTIL                   \ 2         loop until LCD_TIM_IFG set
+    BIC #1,&LCD_TIM_CTL         \ 3         clear LCD_TIM_IFG
+    SUB #1,TOS                  \ 1
+U< UNTIL                        \ 2 ...so add a dummy loop with U< instead of 0=
+MOV @PSP+,TOS                   \ 2
+MOV @IP+,PC                     \ 4
 ENDCODE
-    \
 
 CODE TOP_LCD                    \ LCD Sample
 \                               \ if write : %xxxxWWWW --
@@ -36626,10 +30656,10 @@ THEN                            \ read LCD bits pattern
     AND.B #LCD_DB,TOS           \
     MOV @IP+,PC
 ENDCODE
-    \
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -36638,107 +30668,77 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
     TOP_LCD 2 20_US 
 ;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
 
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
+    GOTO BW1
 ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
-    \
 
 \ ******************************\
 ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
@@ -36753,24 +30753,22 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
+\ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
+\     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\ [THEN]
+FREQ_KHZ @ 16000 = [IF]         \ 16 MHz ?
+    MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ 24 MHz ?
+    MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+[THEN]
 MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
 MOV #14,W                       \ count of loop
 BEGIN                           \
 \ ******************************\
 \ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
 \ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
 \ RC5_Compute_3/4_Period:       \                   |
     RRUM    #1,X                \ X=1/2 cycle       |
@@ -36825,45 +30823,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
-    \ 
 
 \ ------------------------------\
-ASM BACKGROUND                  \ 
+ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
+\ ******************************\
+\ here start all interrupts     \
+\ ******************************\
+\ here return all interrupts    \
+\ ******************************\
+AGAIN                           \
 ENDASM                          \
+
 \ ------------------------------\
-    \
+CODE STOP                       \ stops multitasking, must to be used before downloading app
+\ ------------------------------\
+\ restore default action of primary DEFERred word SLEEP (assembly version)
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+    ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
+    MOV X,-2(X)                 \ restore the default background
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
+ECHO                            \
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
+;
 
-CODE START                      \
+\ ------------------------------\
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -36891,33 +30906,23 @@ CODE START                      \
 \ -------------------------------\
 \ LCD_TIM_EX0                    \ 
 \ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
+\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
+FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
+[THEN]
+FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
+    MOV #2,&LCD_TIM_EX0         \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
+[THEN]
     MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -36934,7 +30939,7 @@ CODE START                      \
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -36950,8 +30955,7 @@ CODE START                      \
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -36966,16234 +30970,68 @@ CODE START                      \
 \    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
 \ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
-    ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-[DEFINED] ASM [IF]      \ security test
-    \
-MARKER {RC5TOLCD}
-    \
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-    \
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-    \
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-    \
-
-\ CODE 20_US                      \ n --      n * 20 us
-\ BEGIN                           \ 3 cycles loop + 6~  
-\ \    MOV     #5,W                \ 3 MCLK = 1 MHz
-\ \    MOV     #23,W               \ 3 MCLK = 4 MHz
-\ \    MOV     #51,W               \ 3 MCLK = 8 MHz
-\     MOV     #104,W              \ 3 MCLK = 16 MHz
-\ \    MOV     #158,W              \ 3 MCLK = 24 MHz
-\     BEGIN                       \ 3 cycles loop ==> 3 * W / F us = 100 us - 1 @ 8 MHz
-\         SUB #1,W                \ 1
-\     0= UNTIL                    \ 2
-\     SUB     #1,TOS              \ 1
-\ 0= UNTIL                        \ 2
-\     MOV     @PSP+,TOS           \ 2
-\     MOV     @IP+,PC             \ 4
-\ ENDCODE
-\     \
-
-CODE 20_US                  \ n --      n * 20 us
-BEGIN                       \ here we presume that LCD_TIM_IFG = 1...
-    BEGIN
-        BIT #1,&LCD_TIM_CTL      \ 3
-    0<> UNTIL               \ 2         loop until LCD_TIM_IFG set
-    BIC #1,&LCD_TIM_CTL          \ 3         clear LCD_TIM_IFG
-    SUB #1,TOS              \ 1
-U< UNTIL                    \ 2 ...so add a dummy loop with U< instead of 0=
-MOV @PSP+,TOS               \ 2
-MOV @IP+,PC                 \ 4
-ENDCODE
-    \
-
-CODE TOP_LCD                    \ LCD Sample
-\                               \ if write : %xxxxWWWW --
-\                               \ if read  : -- %0000RRRR
-    BIS.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 0-->1
-    BIT.B #LCD_RW,&LCD_CMD_IN   \ lcd_rw test
-0= IF                           \ write LCD bits pattern
-    AND.B #LCD_DB,TOS           \ 
-    MOV.B TOS,&LCD_DB_OUT       \ send LCD_Data
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV @PSP+,TOS               \
-    MOV @IP+,PC
-THEN                            \ read LCD bits pattern
-    SUB #2,PSP
-    MOV TOS,0(PSP)
-    BIC.B #LCD_EN,&LCD_CMD_OUT  \ lcd_en 1-->0 ==> strobe data
-    MOV.B &LCD_DB_IN,TOS        \ get LCD_Data
-    AND.B #LCD_DB,TOS           \
-    MOV @IP+,PC
-ENDCODE
-    \
-
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
-    RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
-    BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as output
-COLON                           \ high level word starts here 
-    TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
-    \
-
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-    \
-
-CODE LCD_WrF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-    \
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-    \
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-    \
-
-[UNDEFINED] OR [IF]
-    \
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-    \
-
-[THEN]
-    \
-: LCD_Entry_set     $04 OR LCD_WrF ;
-    \
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-    \
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-    \
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-    \
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-    \
-: LCD_Goto          $80 OR LCD_WrF ;
-    \
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-    \
-
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-    \
-
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
-    \
-
-
-\ ******************************\
-ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
-\ ******************************\
-\ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
-BIT.B #SW2,&SW2_IN              \ test switch S2
-0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
-    THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
-ENDASM
-    \
-
-\ ******************************\
-ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
-\ ******************************\
-\ IR_RC5 driver                 \ IP,S,T,W,X,Y registers are free for use
-\ ******************************\
-\                               \ in :  SR(9)=old Toggle bit memory (ADD on)
-\                               \       SMclock = 8|16|24 MHz
-\                               \ use : T,W,X,Y, RC5_TIM_ timer, RC5_TIM_R register
-\                               \ out : X = 0 C6 C5 C4 C3 C2 C1 C0
-\                               \       SR(9)=new Toggle bit memory (ADD on)
-\ ******************************\
-\ RC5_FirstStartBitHalfCycle:   \
-\ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
-\ MOV #0,&RC5_TIM_EX0           \ predivide by 1 in RC5_TIM_EX0 register ( 125kHz|  1MHz |  2MHZ |  4MHZ |  8MHZ ), reset value
-  MOV #1,&RC5_TIM_EX0           \ predivide by 2 in RC5_TIM_EX0 register ( 250kHZ|  2MHz |  4MHZ |  8MHZ | 16MHZ )
-\ MOV #2,&RC5_TIM_EX0           \ predivide by 3 in RC5_TIM_EX0 register ( 375kHz|  3MHz |  6MHZ | 12MHZ | 24MHZ )
-\ MOV #3,&RC5_TIM_EX0           \ predivide by 4 in RC5_TIM_EX0 register ( 500kHZ|  4MHz |  8MHZ | 16MHZ )
-\ MOV #4,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 625kHz|  5MHz | 10MHZ | 20MHZ )
-\ MOV #5,&RC5_TIM_EX0           \ predivide by 6 in RC5_TIM_EX0 register ( 750kHz|  6MHz | 12MHZ | 24MHZ )
-\ MOV #6,&RC5_TIM_EX0           \ predivide by 7 in RC5_TIM_EX0 register ( 875kHz|  7MHz | 14MHZ | 28MHZ )
-\ MOV #7,&RC5_TIM_EX0           \ predivide by 8 in RC5_TIM_EX0 register (  1MHz |  8MHz | 16MHZ | 32MHZ )
-MOV #1778,X                     \ RC5_Period * 1us
-\ MOV #222,X                    \ RC5_Period * 8us (SMCLK/1 and first column above)
-MOV #14,W                       \ count of loop
-BEGIN                           \
-\ ******************************\
-\ RC5_HalfCycle                 \ <--- loop back ---+ with readjusted RC5_Period
-\ ******************************\                   |
-\ MOV #%1000100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/1 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1002100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/2 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ MOV #%1010100100,&RC5_TIM_CTL \ (re)start timer_A | SMCLK/4 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-MOV #%1011100100,&RC5_TIM_CTL   \ (re)start timer_A | SMCLK/8 time interval,free running,clear RC5_TIM__IFG and RC5_TIM_R
-\ RC5_Compute_3/4_Period:       \                   |
-    RRUM    #1,X                \ X=1/2 cycle       |
-    MOV     X,Y                 \                   ^
-    RRUM    #1,Y                \ Y=1/4
-    ADD     X,Y                 \ Y=3/4 cycle
-    BEGIN   CMP Y,&RC5_TIM_R    \ 3 wait 1/2 + 3/4 cycle = n+1/4 cycles 
-    U>= UNTIL                   \ 2
-\ ******************************\
-\ RC5_SampleOnFirstQuarter      \ at n+1/4 cycles, we sample RC5_input, ST2/C6 bit first
-\ ******************************\
-    BIT.B   #RC5,&IR_IN         \ C_flag = IR bit
-    ADDC    T,T                 \ C_flag <-- T(15):T(0) <-- C_flag
-    MOV.B   &IR_IN,&IR_IES      \ preset Px_IES.y state for next IFG
-    BIC.B   #RC5,&IR_IFG        \ clear Px_IFG.y after 4/4 cycle pin change
-    SUB     #1,W                \ decrement count loop
-\                               \  count = 13 ==> T = x  x  x  x  x  x  x  x |x  x  x  x  x  x  x /C6
-\                               \  count = 0  ==> T = x  x /C6 Tg A4 A3 A2 A1|A0 C5 C4 C3 C2 C1 C0  1 
-0<> WHILE                       \ ----> out of loop ----+
-    ADD X,Y                     \                       |   Y = n+3/4 cycles = time out because n+1/2 cycles edge is always present
-    BEGIN                       \                       |
-        MOV &RC5_TIM_R,X        \ 3                     |   X grows from n+1/4 up to n+3/4 cycles
-        CMP Y,X                 \ 1                     |   cycle time out of bound ?
-        U>= IF                  \ 2                 ^   |   yes:
-        BIC #$30,&RC5_TIM_CTL   \                   |   |      stop timer
-        GOTO BW1                \                   |   |      quit on truncated RC5 message
-        THEN                    \                   |   |
-        BIT.B #RC5,&IR_IFG      \ 3                 |   |   n+1/2 cycles edge is always present
-    0<> UNTIL                   \ 2                 |   |
-REPEAT                          \ ----> loop back --+   |   with X = new RC5_period value
-\ ******************************\                       |
-\ RC5_SampleEndOf:              \ <---------------------+
-\ ******************************\
-BIC #$30,&RC5_TIM_CTL           \   stop timer
-\ ******************************\
-\ RC5_ComputeNewRC5word         \
-\ ******************************\
-RLAM    #1,T                    \ T =  x /C6 Tg A4 A3 A2 A1 A0|C5 C4 C3 C2 C1 C0  1  0
-MOV.B   T,X                     \ X = C5 C4 C3 C2 C1 C0  1  0
-RRUM    #2,X                    \ X =  0  0 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_ComputeC6bit              \
-\ ******************************\
-BIT     #BIT14,T                \ test /C6 bit in T
-0= IF   BIS #BIT6,X             \ set C6 bit in X
-THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
-\ ******************************\
-\ RC5_CommandByteIsDone         \ -- BASE RC5_code
-\ ******************************\
-\ Only New_RC5_Command ADD_ON   \ use SR(9) bit as toggle bit
-\ ******************************\
-RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
-XOR     @RSP,T                  \ (new XOR old) Toggle bits
-BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT
-    CR ." $" 2 U.R              \ print IR_RC5 code
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
-ENDASM
-    \ 
-
-\ ------------------------------\
-ASM BACKGROUND                  \ 
-\ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-MOV #SLEEP,X                    \ 2 Must be the last statement of BACKGROUND
-ADD #4,X                        \ 1 X = BODY of SLEEP
-MOV X,PC                        \ 3 
-ENDASM                          \
-\ ------------------------------\
-    \
-
-CODE START                      \
-\ ------------------------------\
-\ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
-\                    - -             \CNTL Counter lentgh \ 00 = 16 bits
-\                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
-\                           --       \ID input divider \ 10 = /4
-\                             --     \MC Mode Control \ 01 = up to LCD_TIM_CCR0
-\                                 -  \TBCLR TimerB Clear
-\                                  - \TBIE
-\                                   -\TBIFG
-\ -------------------------------\
-\ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
-\                  --                 \CM Capture Mode
-\                    --               \CCIS
-\                       -             \SCS
-\                        --           \CLLD
-\                          -          \CAP
-\                            ---      \OUTMOD \ 011 = set/reset
-\                               -     \CCIE
-\                                 -   \CCI
-\                                  -  \OUT
-\                                   - \COV
-\                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo, works without interrupt
-\ ------------------------------\
-\    MOV #%1000010100,&LCD_TIM_CTL \ SMCLK/1, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (1 MHZ)
-\ ------------------------------\
-\    MOV #%1001010100,&LCD_TIM_CTL \ SMCLK/2, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (2 MHZ)
-\ ------------------------------\
-\    MOV #%1010010100,&LCD_TIM_CTL \ SMCLK/4, up mode, clear timer, no int
-\    MOV #1,&LCD_TIM_EX0        \ predivide by 2 in LCD_TIM_EX0 register (4 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
-\ ------------------------------\
-    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-    MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
-\ ------------------------------\
-\    MOV #%1011010100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
-\    MOV #2,&LCD_TIM_EX0        \ predivide by 3 in LCD_TIM_EX0 register (24 MHZ)
-\ ------------------------------\
-    MOV #19,&LCD_TIM_CCR0       \ 19+1=20*1us=20us
-\ ------------------------------\
-\ set LCD_TIM_.2 to generate PWM for LCD_Vo
-\ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
-\ ------------------------------\
-    BIS.B #LCDVo,&LCDVo_DIR     \
-    BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
-\ ------------------------------\
-    BIS.B #LCD_CMD,&LCD_CMD_DIR \ lcd_cmd as outputs
-    BIC.B #LCD_CMD,&LCD_CMD_REN \ lcd_cmd pullup/down disable
-\ ------------------------------\
-    BIS.B #LCD_DB,&LCD_DB_DIR   \ as output, wired to DB(4-7) LCD_Data
-    BIC.B #LCD_DB,&LCD_DB_REN   \ LCD_Data pullup/down disable
-\ ******************************\
-\ init RC5_Int                  \
-\ ******************************\
-    BIS.B #RC5,&IR_IE           \ enable RC5_Int
-    BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
-    MOV #RC5_INT,&IR_Vec        \ init interrupt vector
-\ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
-\ ******************************\
-\              %01 0001 0100    \ TAxCTL
-\               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
-\                  --           \ ID        divided by 1
-\                    --         \ MC        MODE = up to TAxCCRn
-\                        -      \ TACLR     clear timer count
-\                         -     \ TAIE
-\                          -    \ TAIFG
-\ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
-\ ------------------------------\
-\                        000    \ TAxEX0
-\                        ---    \ TAIDEX    pre divisor
-\ ------------------------------\
-\          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ init WDT for LFXT: 32768/20=1638 ==> 50ms
-\    MOV ##400,&WDT_TIM_CCR0      \ init WDT for VLO: 8000/20=400 ==> 50ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-    MOV #WDT_INT,&WDT_TIM_0_Vec \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4,&LPM_MODE         \ with MSP430FR59xx
-\    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
-\                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
-
-\ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
+\ CMP #2,Y                        \ Power_ON event
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
+CMP #4,Y                        \
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
+\ CMP #6,Y                        \
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
+\ CMP #$0A,Y                      \
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
+\ CMP #$16,Y                      \
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
 \ ------------------------------\
-
-LO2HI                           \ no need to push IP because (WARM) resets the Return Stack ! 
-
+COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"   
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit"
-    LIT RECURSE IS WARM         \ replace WARM by this START routine
-    ABORT                       \ and continue with the next word after WARM...
-;                               \ ...until interpreter falls in sleep mode within ACCEPT.
-    \
-
-CODE STOP                   \ stops multitasking, must to be used before downloading app
-\ restore default action of primary DEFERred word SLEEP, assembly version
-    MOV #SLEEP,X            \ the ASM word SLEEP is only visible in mode assembler. 
-    ADD #4,X                \ X = BODY of SLEEP
-    MOV X,-2(X)             \ restore the default background
-
-COLON
-\ restore default action of primary DEFERred word WARM, FORTH version
-    ['] WARM >BODY IS WARM  \ remove START app from FORTH init process
-
-    COLD                    \ because we want to reset CPU and interrupt vectors
-;
-    \
-
-
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-    \
-[THEN]      \ ASM
-    \
-
-
-
-
-; -----------------------------------
-; RC5toLCD.f
-; -----------------------------------
-\
-\ FastForth Compiling options used :
-\ DTC=2, FREQUENCY=8/16/24MHz, THREADS=16, 
-\ 921600 bauds, 3WIRES, 4WIRES,
-\ ASSEMBLER, CONDCOMP, LOWERCASE, NONAME, UTILITY.
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
 
-\ TARGET SELECTION
-\ MSP_EXP430FR5739  MSP_EXP430FR5969    MSP_EXP430FR5994    MSP_EXP430FR6989
-\ MSP_EXP430FR2355
-\ MY_MSP430FR5738_1 MY_MSP430FR5738     MY_MSP430FR5948     MY_MSP430FR5948_1   
-\
-\ Copyright (C) <2016>  <J.M. THOORENS>
-\
-\ 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 <http://www.gnu.org/licenses/>.
-\
-\
-\ ===========================================================================
-\ remember: for good downloading to target, all lines must be ended with CR+LF !
-\ ===========================================================================
-\
-\
-\ REGISTERS USAGE
-\ R4 to R7 must be saved before use and restored after
-\ scratch registers Y to S are free for use
-\ under interrupt, IP is free for use
-\ interrupts reset SR register !
-\
-\ PUSHM order : PSP,TOS, IP,  S,  T,  W,  X,  Y, rEXIT,rDOVAR,rDOCON, rDODOES, R3, SR,RSP, PC
-\ PUSHM order : R15,R14,R13,R12,R11,R10, R9, R8,  R7  ,  R6  ,  R5  ,   R4   , R3, R2, R1, R0
-\
-\ example : PUSHM #6,IP pushes IP,S,T,W,X,Y registers to return stack
-\
-\ POPM  order :  PC,RSP, SR, R3, rDODOES,rDOCON,rDOVAR,rEXIT,  Y,  X,  W,  T,  S, IP,TOS,PSP
-\ POPM  order :  R0, R1, R2, R3,   R4   ,  R5  ,  R6  ,  R7 , R8, R9,R10,R11,R12,R13,R14,R15
-\
-\ example : POPM #6,IP   pop Y,X,W,T,S,IP registers from return stack
-\
-\ ASSEMBLER conditionnal usage after IF UNTIL WHILE : S< S>= U< U>= 0= 0<> 0>=
-\ ASSEMBLER conditionnal usage before ?JMP ?GOTO    : S< S>= U< U>= 0= 0<> 0< 
-\
-\ FORTH conditionnal    : 0= 0< = < > U<
-\
-\ display on a LCD 2x20 CHAR the code sent by an IR remote under philips RC5 protocol
-\ target : any TI MSP-EXP430FRxxxx launchpad (FRAM)
-\ LPM_MODE = LPM0 because use SMCLK for LCDVo
-\
-\ DEMO : driver for IR remote compatible with the PHILIPS RC5 protocol
-\ plus : driver for 5V LCD 2x20 characters display with 4 bits data interface
-\        without usage of an auxiliary 5V to feed the LCD_Vo
-\        and without potentiometer to adjust the LCD contrast :
-\        to adjust LCD contrast, just press S1 (-) or S2 (+)
-\        LCDVo current consumption ~ 500 uA.
-\
-\ ===================================================================================
-\ notice : adjust WDT_TIM_EX0,LCD_TIM_CTL,LCD_TIM_EX0 and 20_us to the target frequency if <> 8MHz !
-\ ===================================================================================
-\
-\
-\ layout : I/O are defined in the launchpad.pat file (don't work with ChipStick_FR2433)
-\
-\  GND  <-------o---0V0---------->  1 LCD_Vss
-\  VCC  >-------|---3V6-----o---->  2 LCD_Vdd
-\               |           |
-\              ___    470n ---
-\               ^          ---
-\              / \ 1N4148   |
-\              ---          |
-\          100n |    2k2    |
-\ TB0.2 >---||--o--^/\/\/v--o---->  3 LCD_Vo (= 0V6 without modulation)
-\       ------------------------->  4 LCD_RW
-\       ------------------------->  5 LCD_RW
-\       ------------------------->  6 LCD_EN
-\       <------------------------> 11 LCD_DB4
-\       <------------------------> 12 LCD_DB5
-\       <------------------------> 13 LCD_DB5
-\       <------------------------> 14 LCD_DB7
-\
-\       <----- LCD contrast + <---    Sw1   <--- (finger) :-)
-\       <----- LCD contrast - <---    Sw2   <--- (finger) :-)
-\
-\ rc5   <--- OUT IR_Receiver (1 TSOP32236)
+\ ------------------------------\
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
+\ ------------------------------\
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
-[DEFINED] ASM [IF]      \ security test
-
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
 CODE 20_US                      \ n --      n * 20 us
 BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
@@ -53226,8 +31064,9 @@ THEN                            \ read LCD bits pattern
     MOV @IP+,PC
 ENDCODE
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -53237,95 +31076,75 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US 
 ;
 
-CODE LCD_WrC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-
-CODE LCD_WrF                    \ func --         Write Fonction
+CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
-ENDCODE
-
-: LCD_Clear 
-    $01 LCD_WrF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-
-: LCD_Home 
-    $02 LCD_WrF 100 20_us 
-;
-
-[UNDEFINED] OR [IF]
-
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-
-[THEN]
-
-: LCD_Entry_set     $04 OR LCD_WrF ;
-
-: LCD_DSP_Ctrl      $08 OR LCD_WrF ;
-
-: LCD_DSP_Shift     $10 OR LCD_WrF ;
-
-: LCD_Fn_Set        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_Set     $40 OR LCD_WrF ;
-
-: LCD_Goto          $80 OR LCD_WrF ;
-
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
+    GOTO BW1
 ENDCODE
 
-CODE LCD_RdS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
 
-CODE LCD_RdC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
 
 \ ******************************\
@@ -53341,6 +31160,7 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
 \     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
 \ [THEN]
@@ -53410,67 +31230,62 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR to LCD
-    ['] LCD_WrC  IS EMIT        \ redirects EMIT to LCD
-    CR ." $" 2 U.R              \ print IR_RC5 code to LCD
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
-\ ******************************\
+\ Display IR_RC5 code           \
+\ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
 
 \ ------------------------------\
 ASM BACKGROUND                  \
 \ ------------------------------\
-\ ...                           \ insert here your background task
-\ ...                           \
-\ ...                           \
-BIS #LPM_MODE,SR                \
-ENDASM                          \
+BEGIN
+\     ...                         \ insert here your background task
+\     ...                         \
+\     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL
+    BIS &LPM_MODE,SR            \
 \ ******************************\
 \ here start all interrupts     \
 \ ******************************\
 \ here return all interrupts    \
 \ ******************************\
-CODENNM                         \
-JMP BACKGROUND                  \
-ENDCODE DROP                    \
-
-
+AGAIN                           \
+ENDASM                          \
 
 \ ------------------------------\
 CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
 \ restore default action of primary DEFERred word SLEEP (assembly version)
-    MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
     ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
     MOV X,-2(X)                 \ restore the default background
-COLON
-\ restore default action of primary DEFERred word WARM (FORTH version)
-['] WARM >BODY IS WARM          \ remove START from FORTH init process
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
 ECHO                            \
-." RC5toLCD is removed." CR     \ display message      
-."    type START to restart"    \
-COLD                            \ performs reset     
+." RC5toLCD is removed. type START to restart"
+COLD                            \ performs reset to reset all interrupt vectors.    
 ;
 
 \ ------------------------------\
-CODE START                      \ this routine completes the init of system, i.e. FORTH + this app.
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -53512,9 +31327,9 @@ FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%01100000,&LCD_TIM_CCTLn \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -53531,7 +31346,7 @@ FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -53547,7 +31362,7 @@ FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -53563,61 +31378,64 @@ FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
 \ ------------------------------\
-\ redirects to background task  \
+\ activate I/O                  \
 \ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\ usefull only when any RESET event occurs
-\ activate I/O                  \ because when we type START, it is already done by WARM
-\ ------------------------------\ before its redirection by executing START !
-BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works !
-BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use; if not configured, no TERMINAL !
+BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
+BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, otherwise no TERMINAL !
 \ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your device datasheet
+\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet
 \ ------------------------------\
-MOV &SAVE_SYSRSTIV,Y            \
+MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
 \ CMP #2,Y                        \ Power_ON event
-\ 0= ?JMP STOP                    \ uncomment if you want to loose application in this case...
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
 CMP #4,Y                        \
-0= ?JMP STOP                    \ hardware RESET performs STOP. Should be mandatory...
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
 \ CMP #6,Y                        \
-\ 0= ?JMP STOP                    \ COLD event performs STOP... uncomment if it's that you want.
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
 \ CMP #$0A,Y                      \
-\ 0= ?JMP STOP                    \ fault event (violation memory protected areas) performs STOP
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
 \ CMP #$16,Y                      \
-\ U>= ?JMP STOP                   \ all other fault events + Deep Reset perform STOP
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
 \ ------------------------------\
 COLON                           \
 \ ------------------------------\
 \ Init LCD 2x20                 \
 \ ------------------------------\
-    $03E8 20_US                 \ 1-  wait 20 ms
-    $03 TOP_LCD                 \ 2- send DB5=DB4=1
-    $CD 20_US                   \ 3- wait 4,1 ms
-    $03 TOP_LCD                 \ 4- send again DB5=DB4=1
-    $5 20_US                    \ 5- wait 0,1 ms
-    $03 TOP_LCD                 \ 6- send again again DB5=DB4=1
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $02 TOP_LCD                 \ 7- send DB5=1 DB4=0
-    $2 20_US                    \    wait 40 us = LCD cycle
-    $28 LCD_WRF                 \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
-    $08 LCD_WRF                 \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
-    $06 LCD_WRF                 \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
-    $0C LCD_WRF                 \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
-    LCD_Clear                   \ 10- "LCD_Clear"
+    #1000 20_US                 \ 1- wait 20 ms
+    %011 TOP_LCD                \ 2- send DB5=DB4=1
+    #205 20_US                  \ 3- wait 4,1 ms
+    %011 TOP_LCD                \ 4- send again DB5=DB4=1
+    #5 20_US                    \ 5- wait 0,1 ms
+    %011 TOP_LCD                \ 6- send again again DB5=DB4=1
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %010 TOP_LCD                \ 7- send DB5=1 DB4=0
+    #2 20_US                    \    wait 40 us = LCD cycle
+    %00101000 LCD_WRF           \ 8- %001DNFxx "FonctionSet" D=8/4 DataBus width, Number of lines=2/1, Font bold/normal
+    %1000 LCD_WRF               \ 9- %1DCB   "DisplayControl" : Display off, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
+    %0110 LCD_WRF               \ 11- %01xx   "LCD_EntrySet" : address and cursor shift after writing in RAM
+    %1100 LCD_WRF               \ 12- %1DCB "DisplayControl" : Display on, Cursor off, Blink off. 
+    LCD_CLEAR                   \ 10- "LCD_Clear"
     ['] LCD_HOME IS CR          \ ' CR redirected to LCD_HOME
     ['] LCD_WRC  IS EMIT        \ ' EMIT redirected to LCD_WrC
-    CR ." I love you"                          \ display on LCD
-    ['] CR >BODY IS CR          \
-    ['] EMIT >BODY IS EMIT      \
-    ." RC5toLCD is running. Type STOP to quit" \ display on FastForth Terminal
+    CR ." I love you"           \ display message on LCD
+    ['] CR >BODY IS CR          \ CR executes its default value
+    ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
+    ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
+
 \ ------------------------------\
-\ START replaces WARM           \
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
 \ ------------------------------\
-    LIT RECURSE IS WARM         \ START replaces WARM...
-    ABORT                       \ ...and continue with ABORT
-;                               \
+MOV #SLEEP,X                    \ replace default background process
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
+
+
 
 ECHO
             ; downloading RC5toLCD.4th is done
index f00fe82..a66a6b2 100644 (file)
 \
 \ rc5   <--- OUT IR_Receiver (1 TSOP32236)
 
-PWR_STATE
+RST_STATE
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
 
 MARKER {RC5TOLCD}
 
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
-
-CODE MAX    \    n1 n2 -- n3       signed maximum
-    CMP @PSP,TOS    \ n2-n1
-    S<  ?GOTO FW1   \ n2<n1
-BW1 ADD #2,PSP
-    MOV @IP+,PC
-ENDCODE
-
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
-FW1 MOV @PSP+,TOS
-    MOV @IP+,PC
-ENDCODE
-
-[THEN]
-
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
 CODE 20_US                      \ n --      n * 20 us
 BEGIN                           \ here we presume that LCD_TIM_IFG = 1...
     BEGIN
@@ -135,8 +110,9 @@ THEN                            \ read LCD bits pattern
     MOV @IP+,PC
 ENDCODE
 
-CODE LCD_W                      \ byte --       write byte to LCD 
-    SUB #2,PSP                  \
+CODE LCD_WRC                    \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
     MOV TOS,0(PSP)              \ -- %xxxxLLLL %HHHHLLLL
     RRUM #4,TOS                 \ -- %xxxxLLLL %xxxxHHHH
     BIC.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=0
@@ -146,95 +122,75 @@ COLON                           \ high level word starts here
     TOP_LCD 2 20_US 
 ;
 
-CODE LCD_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_W 
-ENDCODE
-
 CODE LCD_WRF                    \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_W 
+    GOTO BW1
 ENDCODE
 
-: LCD_CLEAR 
-    $01 LCD_WRF 100 20_us      \  $01 LCD_WrF 80 20_us ==> bad init !
-;
-
-: LCD_HOME 
-    $02 LCD_WRF 100 20_us 
-;
-
-[UNDEFINED] OR [IF]
-
-\ https://forth-standard.org/standard/core/OR
-\ C OR     x1 x2 -- x3           logical OR
-CODE OR
-BIS @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-
-[THEN]
-
-: LCD_ENTRY_SET     $04 OR LCD_WrF ;
-
-: LCD_DSP_CTRL      $08 OR LCD_WrF ;
-
-: LCD_DSP_SHIFT     $10 OR LCD_WrF ;
-
-: LCD_FN_SET        $20 OR LCD_WrF ;
-
-: LCD_CGRAM_SET     $40 OR LCD_WrF ;
-
-: LCD_GOTO          $80 OR LCD_WrF ;
-
-CODE LCD_R                      \ -- byte       read byte from LCD
-    BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
-    BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
-COLON                           \ starts a FORTH word
-    TOP_LCD 2 20_us             \ -- %0000HHHH
-    TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
-HI2LO                           \ switch from FORTH to assembler
-    RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
-    ADD.B @PSP+,TOS             \ -- %HHHHLLLL
-    MOV @RSP+,IP                \ restore IP saved by COLON
-    MOV @IP+,PC                 \
-ENDCODE
-
-CODE LCD_RDS                    \ -- status       Read Status
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    JMP LCD_R
-ENDCODE
-
-CODE LCD_RDC                    \ -- char         Read Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-    JMP LCD_R
-ENDCODE
+: LCD_CLEAR $01 LCD_WRF 100 20_us ;    \  $01 LCD_WrF 80 20_us ==> bad init !
+: LCD_HOME $02 LCD_WRF 100 20_us ;
+
+\ [UNDEFINED] OR [IF]
+\ 
+\ \ https://forth-standard.org/standard/core/OR
+\ \ C OR     x1 x2 -- x3           logical OR
+\ CODE OR
+\ BIS @PSP+,TOS
+\ MOV @IP+,PC
+\ ENDCODE
+\ 
+\ [THEN]
+\ 
+\ : LCD_ENTRY_SET     $04 OR LCD_WrF ;
+\ : LCD_DSP_CTRL      $08 OR LCD_WrF ;
+\ : LCD_DSP_SHIFT     $10 OR LCD_WrF ;
+\ : LCD_FN_SET        $20 OR LCD_WrF ;
+\ : LCD_CGRAM_SET     $40 OR LCD_WrF ;
+\ : LCD_GOTO          $80 OR LCD_WrF ;
+\ 
+\ 
+\ CODE LCD_RDS                    \ -- status       Read Status
+\     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+\ BW1 BIC.B #LCD_DB,&LCD_DB_DIR   \ LCD_Data as intput
+\     BIS.B #LCD_RW,&LCD_CMD_OUT  \ lcd_rw=1
+\ COLON                           \ starts a FORTH word
+\     TOP_LCD 2 20_us             \ -- %0000HHHH
+\     TOP_LCD 2 20_us             \ -- %0000HHHH %0000LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH0000 %0000LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHHLLLL
+\     MOV @RSP+,IP                \ restore IP saved by COLON
+\     MOV @IP+,PC                 \
+\ ENDCODE
+\ 
+\ CODE LCD_RDC                    \ -- char         Read Char
+\     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+\     GOTO BW1
+\ ENDCODE
 
 
 \ ******************************\
 ASM WDT_INT                     \ Watchdog interrupt routine, warning : not FORTH executable !
 \ ******************************\
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ XOR.B #LED1,&LED1_OUT           \ to visualise WDT
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-    CMP #19,&LCD_TIM_CCR2       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+    CMP #19,&LCD_TIM_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
     U< IF
-        ADD #1,&LCD_TIM_CCR2    \ action for switch S2 (P2.5) : 150 mV / increment
+        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
     THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCR2    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-           SUB #1,&LCD_TIM_CCR2 \ action for switch S1 (P2.6) : -150 mV / decrement
+           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
-BW1                             \ from quit on truncated RC5 message
-BW2                             \ from repeated RC5 command
-BW3                             \ from end of RC5_INT
-BIC #$78,0(RSP)                 \ 4  SCG0,OSCOFF,CPUOFF and GIE are OFF in retiSR to force LPM0_LOOP despite pending interrupt
-RETI                            \ 5
+BW1                             \ from quit on truncated RC5 message, repeated RC5 command
+RET                             \ 5
 ENDASM
 
 \ ******************************\
@@ -250,6 +206,7 @@ ASM RC5_INT                     \   wake up on Px.RC5 change interrupt
 \ ******************************\
 \ RC5_FirstStartBitHalfCycle:   \
 \ ******************************\                division in RC5_TIM_CTL (SMCLK/1|SMCLK/1|SMCLK/2|SMCLK/4|SMCLK/8)
+ADD #2,RSP                      \ 1  smart and fast RETI with GIE=0
 \ FREQ_KHZ @ 8000 = [IF]        \ 8 MHz ?
 \     MOV #0,&RC5_TIM_EX0       \ predivide by 1 in RC5_TIM_EX0 register, reset value
 \ [THEN]
@@ -319,37 +276,37 @@ THEN                            \ X =  0  C6 C5 C4 C3 C2 C1 C0
 RRUM    #3,T                    \ new toggle bit = T(13) ==> T(10)
 XOR     @RSP,T                  \ (new XOR old) Toggle bits
 BIT     #UF10,T                 \ repeated RC5_command ?
-0= ?GOTO BW2                    \ yes, RETI without UF10 change and without action !
+0= ?GOTO BW1                    \ yes, RETI without UF10 change and without action !
 XOR #UF10,0(RSP)                \ 5 toggle bit memory
 \ ******************************\
-\ Display IR_RC5 code           \ X = RC5 code
-\ ******************************\
-SUB #4,PSP                      \
-MOV &BASE,2(PSP)                \ save current base
-MOV #$10,&BASE                  \ set hex base
-MOV TOS,0(PSP)                  \ save TOS
-MOV X,TOS                       \
-LO2HI                           \ switch from assembler to FORTH
-    ['] LCD_CLEAR IS CR         \ redirects CR to LCD
-    ['] LCD_WRC  IS EMIT        \ redirects EMIT to LCD
-    CR ." $" 2 U.R              \ print IR_RC5 code to LCD
-    ['] CR >BODY IS CR          \ restore CR
-    ['] EMIT >BODY IS EMIT      \ restore EMIT
-HI2LO                           \ switch from FORTH to assembler
-MOV TOS,&BASE                   \ restore current BASE
-MOV @PSP+,TOS                   \
-\ ******************************\
-GOTO BW3
+\ Display IR_RC5 code           \
 \ ******************************\
+SUB #8,PSP                      \ TOS -- x x x x TOS
+MOV TOS,6(PSP)                  \     -- Save_TOS x x x TOS
+MOV &BASEADR,4(PSP)             \     -- Save_TOS Save_Base x x TOS
+MOV #$10,&BASEADR               \                                               set hexadecimal base
+MOV X,0(PSP)                    \     -- Save_TOS Save_Base x RC5_code TOS      convert number to ascii low word = RC5 byte
+MOV #0,TOS                      \     -- Save_TOS Save_Base x RC5_code 0        convert number to ascii high word = 0
+LO2HI                           \                                               switch from assembler to FORTH
+    LCD_CLEAR                   \                                               set LCD cursor at home
+    <# # #S #36 HOLD #>         \                                               32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT         \                                               redirect EMIT to LCD
+    TYPE                        \     -- Save_TOS Save_Base x adr cnt           display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT      \     -- Save_TOS Save_Base TOS                 restore EMIT
+HI2LO                           \     --                                        switch from FORTH to assembler
+MOV @PSP+,&BASEADR              \     -- Save_TOS TOS                           restore current BASE
+MOV @PSP+,TOS                   \     -- TOS
+RET
 ENDASM
 
-\ ------------------------------\
+\ ******************************\
 ASM BACKGROUND                  \
-\ ------------------------------\
+\ ******************************\
 BEGIN
 \     ...                         \ insert here your background task
 \     ...                         \
 \     ...                         \
+    CALL &RXON                  \ comment this line to disable TERMINAL_INPUT
     BIS &LPM_MODE,SR            \
 \ ******************************\
 \ here start all interrupts     \
@@ -358,25 +315,24 @@ BEGIN
 \ ******************************\
 AGAIN                           \
 ENDASM                          \
+\ ******************************\
 
 \ ------------------------------\
 CODE STOP                       \ stops multitasking, must to be used before downloading app
 \ ------------------------------\
 \ restore default action of primary DEFERred word SLEEP (assembly version)
-    MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
+BW1 MOV #SLEEP,X                \ the ASM word SLEEP is only visible in mode assembler. 
     ADD #4,X                    \ X = BODY of SLEEP, X-2 = PFA of SLEEP
-    MOV X,-2(X)                 \ restore the default background
-COLON
-\ restore default action of primary DEFERred word WARM (FORTH version)
-['] WARM >BODY IS WARM          \ remove START from FORTH init process
+    MOV X,-2(X)                 \ restore the default background: SLEEP
+COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
+['] WARM >BODY IS WARM          \ restore the default WARM
 ECHO                            \
-." RC5toLCD is removed." CR     \ display message      
-."    type START to restart"    \
+." RC5toLCD is removed. type START to restart"
 COLD                            \ performs reset to reset all interrupt vectors.    
 ;
 
 \ ------------------------------\
-CODE START                      \ this routine completes the init of system, i.e. FORTH + this app.
+CODE APP_INIT                   \ this routine completes the init of system, i.e. FORTH + this app.
 \ ------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
@@ -406,7 +362,7 @@ CODE START                      \ this routine completes the init of system, i.e
 \ ------------------------------\
 \ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
 \ ------------------------------\
-MOV #%1011010100,&LCD_TIM_CTL   \ SMCLK/8, up mode, clear timer, no int
+MOV #%10_1101_0100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int
 \    MOV #0,&LCD_TIM_EX0        \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
 FREQ_KHZ @ 16000 = [IF]         \ if 16 MHz
     MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
@@ -418,9 +374,9 @@ FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
 \ ------------------------------\
 \ set LCD_TIM_.2 to generate PWM for LCD_Vo
 \ ------------------------------\
-    MOV #%01100000,&LCD_TIM_CCTL2 \ output mode = set/reset \ clear CCIFG
-    MOV #10,&LCD_TIM_CCR2       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
-\    MOV #12,&LCD_TIM_CCR2        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+MOV #%0110_0000,&LCD_TIM_CCTLn  \ output mode = set/reset \ clear CCIFG
+    MOV #10,&LCD_TIM_CCRn       \ contrast adjust : 10/20 ==> LCD_Vo = -0V6|+3V6 (Vcc=3V6)
+\    MOV #12,&LCD_TIM_CCRn        \ contrast adjust : 12/20 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
     BIS.B #LCDVo,&LCDVo_DIR     \
     BIS.B #LCDVo,&LCDVo_SEL     \ SEL.2
@@ -437,7 +393,7 @@ FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
     BIC.B #RC5,&IR_IFG          \ reset RC5_Int flag
     MOV #RC5_INT,&IR_Vec        \ init interrupt vector
 \ ******************************\
-\ init WatchDog WDT_TIM_             \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
+\ init WatchDog WDT_TIM_        \ eUSCI_A0 (FORTH terminal) has higher priority than WDT_TIM_
 \ ******************************\
 \              %01 0001 0100    \ TAxCTL
 \               --              \ TASSEL    CLK = ACLK = LFXT = 32768 Hz
@@ -447,13 +403,13 @@ FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
 \                         -     \ TAIE
 \                          -    \ TAIFG
 \ ------------------------------\
-    MOV #%0100010100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
+MOV #%01_0001_0100,&WDT_TIM_CTL \ start WDT_TIM_, ACLK, up mode, disable int, 
 \ ------------------------------\
 \                        000    \ TAxEX0
 \                        ---    \ TAIDEX    pre divisor
 \ ------------------------------\
 \          %0000 0000 0000 0101 \ TAxCCR0
-    MOV ##1638,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 50ms
+    MOV ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
 \ ------------------------------\
 \          %0000 0000 0001 0000 \ TAxCCTL0
 \                   -           \ CAP capture/compare mode = compare
@@ -469,11 +425,6 @@ FREQ_KHZ @ 24000 = [IF]         \ if 24 MHz
 \    MOV #LPM2,&LPM_MODE         \ with MSP430FR57xx, terminal input don't work for LPMx > 2
 \                               \ with MSP430FR2xxx, terminal input don't work for LPMx > 0 ; LPM0 is the default value
 \ ------------------------------\
-\ redirects to background task  \
-\ ------------------------------\
-    MOV #SLEEP,X                \
-    MOV #BACKGROUND,2(X)        \
-\ ------------------------------\
 \ activate I/O                  \
 \ ------------------------------\
 BIC #1,&PM5CTL0                 \ activate all previous I/O settings; if not activated, nothing works after reset !
@@ -483,15 +434,15 @@ BIS.B #TERM_BUS,&TERM_SEL       \ Configure pins TXD & RXD for TERM_UART use, ot
 \ ------------------------------\
 MOV &SAVE_SYSRSTIV,Y            \ Y = SYSRSTIV register memory
 \ CMP #2,Y                        \ Power_ON event
-\ 0= ?JMP STOP                    \ uncomment if you want to loose application in this case...
+\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
 CMP #4,Y                        \
-0= ?JMP STOP                    \ hardware RESET performs STOP. Should be mandatory...
+0= ?GOTO BW1                    \ hardware RESET performs STOP. Should be mandatory...
 \ CMP #6,Y                        \
-\ 0= ?JMP STOP                    \ COLD event performs STOP... uncomment if it's that you want.
+\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
 \ CMP #$0A,Y                      \
-\ 0= ?JMP STOP                    \ fault event (violation memory protected areas) performs STOP
+\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
 \ CMP #$16,Y                      \
-\ U>= ?JMP STOP                   \ all other fault events + Deep Reset perform STOP
+\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
 \ ------------------------------\
 COLON                           \
 \ ------------------------------\
@@ -518,16 +469,21 @@ COLON                           \
     ['] CR >BODY IS CR          \ CR executes its default value
     ['] EMIT >BODY IS EMIT      \ EMIT executes its defaulte value
     ." RC5toLCD is running. Type STOP to quit" \ display message on FastForth Terminal
+    ABORT                       \ ...and end APP_INIT with ABORT, no return.
+;                               \
+
 \ ------------------------------\
-\ START replaces WARM           \
+CODE START                      \ this routine replaces WARM and SLEEP default values by these of this application.
 \ ------------------------------\
-    LIT RECURSE IS WARM         \ START replaces WARM...
-\    ['] WARM >BODY EXECUTE      \ ...and end START with default WARM, no return.
-    ABORT                       \ ...and end START with ABORT, no return.
-;                               \
+MOV #SLEEP,X                    \ replace default background process SLEEP
+MOV #BACKGROUND,2(X)            \ by RC5toLCD BACKGROUND
+MOV #WARM,X                     \ replace default WARM
+MOV #APP_INIT,2(X)              \ by RC5toLCD APP_INIT
+MOV X,PC                        \ then execute it
+ENDCODE 
 
 ECHO
             ; downloading RC5toLCD.4th is done
 RST_HERE    ; this app is protected against <reset>
 
-\ START
+\ START cold
index 4e00879..c722225 100644 (file)
@@ -15,7 +15,6 @@
 \
 \ TARGET SELECTION
 \ MSP_EXP430FR5739  MSP_EXP430FR5969    MSP_EXP430FR5994    MSP_EXP430FR6989
-\ MSP_EXP430FR4133  CHIPSTICK_FR2433    MSP_EXP430FR2433    MSP_EXP430FR2355
 \
 \ REGISTERS USAGE
 \ R4 to R7 must be saved before use and restored after
@@ -71,6 +70,38 @@ ENDCODE
 
 [THEN]  \ MAX
 
+[UNDEFINED] SPACES [IF]
+\ https://forth-standard.org/standard/core/SPACES
+\ SPACES   n --            output n spaces
+CODE SPACES
+CMP #0,TOS
+0<> IF
+    PUSH IP
+    BEGIN
+        LO2HI
+        $20 EMIT
+        HI2LO
+        SUB #2,IP 
+        SUB #1,TOS
+    0= UNTIL
+    MOV @RSP+,IP
+THEN
+MOV @PSP+,TOS           \ --         drop n
+NEXT              
+ENDCODE
+[THEN]
+
+[UNDEFINED] OVER [IF]
+\ https://forth-standard.org/standard/core/OVER
+\ OVER    x1 x2 -- x1 x2 x1
+CODE OVER
+MOV TOS,-2(PSP)     \ 3 -- x1 (x2) x2
+MOV @PSP,TOS        \ 2 -- x1 (x2) x1
+SUB #2,PSP          \ 1 -- x1 x2 x1
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
 [UNDEFINED] U.R [IF]
 : U.R                       \ u n --           display u unsigned in n width (n >= 2)
   >R  <# 0 # #S #>  
@@ -94,7 +125,7 @@ COLON
 ;
 
 : DATE!
-DEPTH 2 > IF
+2 DEPTH U< IF
     HI2LO
     MOV     TOS,&RTCYEARL   \ year
     MOV.B   @PSP,&RTCMON    \ month     \ @PSP+ don't work because byte format !
@@ -123,7 +154,7 @@ COLON
 ;
 
 : TIME!
-DEPTH 2 > IF
+2 DEPTH U< IF
     HI2LO
     MOV     TOS,&RTCSEC     \ seconds
     MOV.B   @PSP,&RTCMIN    \ minutes   \ @PSP+ don't work because byte format !
@@ -142,8 +173,8 @@ RST_HERE
 : ESC #27 EMIT ;
 
 \ create a word to test DEFERred words
-: [DEFERRED]    \ [DEFERRED] <name>         -- flag
-    ' @ $4030 = \ CFA of <name> = MOV @PC+,PC ? 
+: [ISDEFERRED?]    \ [ISDEFERRED?] xt -- xt flag
+    DUP @ $4030 = \ CFA of <name> = MOV @PC+,PC ? 
 ; IMMEDIATE
 
 CREATE ABUF 20 ALLOT
@@ -157,18 +188,16 @@ ESC ." [1J"     \ erase up (42 empty lines)
 ESC ." [H"      \ cursor home
 
 CR ." DATE (DMY): "
-ABUF ABUF 20 
-     [DEFERRED] ACCEPT 
-     [IF] ['] ACCEPT >BODY EXECUTE   \   execute default part of ACCEPT
-     [ELSE] ACCEPT
-     [THEN]
+ABUF DUP 20 
+    ['] ACCEPT [ISDEFERRED?] 
+    [IF] >BODY   \   execute default part of ACCEPT
+    [THEN] EXECUTE
 EVALUATE CR DATE!
 CR CR ." TIME (HMS): "
-ABUF ABUF 20 
-     [DEFERRED] ACCEPT 
-     [IF] ['] ACCEPT >BODY EXECUTE   \   execute default part of ACCEPT
-     [ELSE] ACCEPT
-     [THEN]
+ABUF DUP 20 
+    ['] ACCEPT [ISDEFERRED?] 
+    [IF] >BODY   \   execute default part of ACCEPT
+    [THEN] EXECUTE
 EVALUATE CR TIME!
 CR
 ;
index aec447a..df673a9 100644 (file)
@@ -74,11 +74,11 @@ PWR_STATE
 
 MARKER {SD_TEST}
 
-[UNDEFINED] AND [IF]
-\ https://forth-standard.org/standard/core/AND
-\ C AND    x1 x2 -- x3           logical AND
-CODE AND
-AND @PSP+,TOS
+[UNDEFINED] + [IF]
+\ https://forth-standard.org/standard/core/Plus
+\ +       n1/u1 n2/u2 -- n3/u3     add n1+n2
+CODE +
+ADD @PSP+,TOS
 MOV @IP+,PC
 ENDCODE
 [THEN]
@@ -87,48 +87,112 @@ ENDCODE
     CODE MAX    \    n1 n2 -- n3       signed maximum
         CMP @PSP,TOS    \ n2-n1
         S< ?GOTO FW1    \ n2<n1
-    BW1 ADD #2,PSP
+BW1     ADD #2,PSP
         MOV @IP+,PC
     ENDCODE
 
     CODE MIN    \    n1 n2 -- n3       signed minimum
         CMP @PSP,TOS    \ n2-n1
         S< ?GOTO BW1    \ n2<n1
-    FW1 MOV @PSP+,TOS
+FW1     MOV @PSP+,TOS
         MOV @IP+,PC
     ENDCODE
 [THEN]
 
-[UNDEFINED] U.R [IF]    \ defined in {UTILITY}
+[UNDEFINED] C@ [IF]
+\ https://forth-standard.org/standard/core/CFetch
+\ C@     c-addr -- char   fetch char from memory
+CODE C@
+MOV.B @TOS,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+\ https://forth-standard.org/standard/core/SPACE
+\ SPACE   --               output a space
+: SPACE
+$20 EMIT ;
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+\ https://forth-standard.org/standard/core/SPACES
+\ SPACES   n --            output n spaces
+CODE SPACES
+CMP #0,TOS
+0<> IF
+    PUSH IP
+    BEGIN
+        LO2HI
+        $20 EMIT
+        HI2LO
+        SUB #2,IP 
+        SUB #1,TOS
+    0= UNTIL
+    MOV @RSP+,IP
+THEN
+MOV @PSP+,TOS           \ --         drop n
+NEXT              
+ENDCODE
+[THEN]
+
+[UNDEFINED] OVER [IF]
+\ https://forth-standard.org/standard/core/OVER
+\ OVER    x1 x2 -- x1 x2 x1
+CODE OVER
+MOV TOS,-2(PSP)     \ 3 -- x1 (x2) x2
+MOV @PSP,TOS        \ 2 -- x1 (x2) x1
+SUB #2,PSP          \ 1 -- x1 x2 x1
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
 : U.R                       \ u n --           display u unsigned in n width (n >= 2)
 >R  <# 0 # #S #>  
 R> OVER - 0 MAX SPACES TYPE
 ;
 [THEN]
 
-[UNDEFINED] DUMP [IF]    \ defined in {UTILITY}
+[UNDEFINED] DUMP [IF]       \ defined in {UTILITY}
 \ https://forth-standard.org/standard/tools/DUMP
 CODE DUMP                   \ adr n  --   dump memory
 PUSH IP
-PUSH &BASE                  \ save current base
-MOV #$10,&BASE              \ HEX base
+PUSH &BASEADR               \ save current base
+MOV #$10,&BASEADR           \ HEX base
 ADD @PSP,TOS                \ -- ORG END
 LO2HI
-  SWAP OVER OVER            \ -- END ORG END ORG 
-  U.  U.                 \ -- END ORG        display org end 
-  $FFF0 AND                 \ -- END ORG_modulo_16
+  SWAP                      \ -- END ORG
   DO  CR                    \ generate line
-    I 7 U.R SPACE           \ generate address
-      I $10 + I             \ display 16 bytes
+    I 4 U.R SPACE           \ generate address
+      I 8 + I
+      DO I C@ 3 U.R LOOP
+      SPACE
+      I $10 + I 8 +
       DO I C@ 3 U.R LOOP  
       SPACE SPACE
       I $10 + I             \ display 16 chars
-      DO I C@ $7E MIN BL MAX EMIT LOOP
+      DO I C@ $7E MIN $20 MAX EMIT LOOP
   $10 +LOOP
-  R> BASE !                 \ restore current base
+  R> BASEADR !              \ restore current base
 ;
 [THEN]
 
+
+\ SD_EMIT  c --    output char c to a SD_CARD file opened as write
+CODE SD_EMIT
+CMP #512,&BufferPtr     \ 512 bytes by sector
+U>= IF                  \ if file buffer is full
+    MOV #WRITE,X        \ CALL WRITEFILE
+    CALL 2(X)           \ BufferPtr = 0
+THEN
+MOV &BufferPtr,Y        \ 3 
+MOV.B TOS,SD_BUF(Y)     \ 3
+ADD #1,&BufferPtr       \ 4
+MOV @PSP+,TOS           \ 2
+MOV @IP+,PC
+ENDCODE
+
 : SD_TEST
 PWR_HERE    \ remove all volatile programs from MAIN memory
 CR
index c2bb40d..c86e8c1 100644 (file)
 \ ASSEMBLER conditionnal usage with IF UNTIL WHILE  S<  S>=  U<   U>=  0=  0<>  0>=
 \ ASSEMBLER conditionnal usage with ?JMP ?GOTO      S<  S>=  U<   U>=  0=  0<>  0<
 
-: DEFINED! ECHO 1 ABORT" already loaded!" ;
-
-[DEFINED] {SD_TOOLS} [IF] DEFINED!
-
-[ELSE]
+[UNDEFINED] {SD_TOOLS} [IF]
 
 PWR_STATE
 
 MARKER {SD_TOOLS}
 
+[UNDEFINED] + [IF]
+\ https://forth-standard.org/standard/core/Plus
+\ +       n1/u1 n2/u2 -- n3/u3     add n1+n2
+CODE +
+ADD @PSP+,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
 [UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {UTILITY}
 
 CODE MAX    \    n1 n2 -- n3       signed maximum
@@ -60,44 +65,82 @@ ENDCODE
 
 [THEN]
 
-[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
+[UNDEFINED] C@ [IF]
+\ https://forth-standard.org/standard/core/CFetch
+\ C@     c-addr -- char   fetch char from memory
+CODE C@
+MOV.B @TOS,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+\ https://forth-standard.org/standard/core/SPACE
+\ SPACE   --               output a space
+: SPACE
+$20 EMIT ;
 [THEN]
 
-[UNDEFINED] AND [IF]
+[UNDEFINED] SPACES [IF]
+\ https://forth-standard.org/standard/core/SPACES
+\ SPACES   n --            output n spaces
+CODE SPACES
+CMP #0,TOS
+0<> IF
+    PUSH IP
+    BEGIN
+        LO2HI
+        $20 EMIT
+        HI2LO
+        SUB #2,IP 
+        SUB #1,TOS
+    0= UNTIL
+    MOV @RSP+,IP
+THEN
+MOV @PSP+,TOS           \ --         drop n
+NEXT              
+ENDCODE
+[THEN]
 
-\ https://forth-standard.org/standard/core/AND
-\ C AND    x1 x2 -- x3           logical AND
-CODE AND
-AND @PSP+,TOS
+[UNDEFINED] OVER [IF]
+\ https://forth-standard.org/standard/core/OVER
+\ OVER    x1 x2 -- x1 x2 x1
+CODE OVER
+MOV TOS,-2(PSP)     \ 3 -- x1 (x2) x2
+MOV @PSP,TOS        \ 2 -- x1 (x2) x1
+SUB #2,PSP          \ 1 -- x1 x2 x1
 MOV @IP+,PC
 ENDCODE
+[THEN]
 
+[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
+: U.R                       \ u n --           display u unsigned in n width (n >= 2)
+  >R  <# 0 # #S #>  
+  R> OVER - 0 MAX SPACES TYPE
+;
 [THEN]
 
 [UNDEFINED] DUMP [IF]       \ defined in {UTILITY}
 \ https://forth-standard.org/standard/tools/DUMP
 CODE DUMP                   \ adr n  --   dump memory
 PUSH IP
-PUSH &BASE                  \ save current base
-MOV #$10,&BASE              \ HEX base
+PUSH &BASEADR               \ save current base
+MOV #$10,&BASEADR           \ HEX base
 ADD @PSP,TOS                \ -- ORG END
 LO2HI
-  SWAP OVER OVER            \ -- END ORG END ORG 
-  U. U.                     \ -- END ORG        display org end 
-  $FFF0 AND                 \ -- END ORG_modulo_16
+  SWAP                      \ -- END ORG
   DO  CR                    \ generate line
-    I 7 U.R SPACE           \ generate address
-      I $10 + I             \ display 16 bytes
+    I 4 U.R SPACE           \ generate address
+      I 8 + I
+      DO I C@ 3 U.R LOOP
+      SPACE
+      I $10 + I 8 +
       DO I C@ 3 U.R LOOP  
       SPACE SPACE
       I $10 + I             \ display 16 chars
-      DO I C@ $7E MIN BL MAX EMIT LOOP
+      DO I C@ $7E MIN $20 MAX EMIT LOOP
   $10 +LOOP
-  R> BASE !                 \ restore current base
+  R> BASEADR !              \ restore current base
 ;
 [THEN]
 
@@ -105,7 +148,7 @@ LO2HI
 \ ----------------------------------\
 CODE SECTOR                         \ sector. --     don't forget to add decimal point to your sector number
 \ ----------------------------------\
-    MOV     TOS,X                   \ X = SectorH
+BW1 MOV     TOS,X                   \ X = SectorH
     MOV     @PSP,W                  \ W = sectorL
     CALL    &ReadSectorWX           \ W = SectorLO  X = SectorHI
 COLON                               \
@@ -113,35 +156,33 @@ COLON                               \
     SD_BUF $200 DUMP CR ;           \ then dump the sector
 \ ----------------------------------\
 
-\ ----------------------------------\
-CODE FAT                            \ Display CurFATsector
-\ ----------------------------------\
-    SUB     #4,PSP                  \
-    MOV     TOS,2(PSP)              \
-    MOV     &OrgFAT1,0(PSP)         \
-    MOV     #0,TOS                  \ FATsectorHI = 0
-    JMP     SECTOR                  \ jump to a defined word
-ENDCODE
-\ ----------------------------------\
-
 \ display first sector of a Cluster
 \ ----------------------------------\
 CODE CLUSTER                        \ cluster.  --        don't forget to add decimal point to your cluster number
 \ ----------------------------------\
-    MOV.B &SecPerClus,W             \ SecPerClus(54321) = multiplicator
+BW2 MOV.B &SecPerClus,W             \ SecPerClus(54321) = multiplicator
     MOV @PSP,X                      \ X = ClusterL
-    RRA W                           \
-    U< IF                           \ case of SecPerClus>1
-        BEGIN
-            ADD X,X                 \ (RLA) shift one left MULTIPLICANDlo16
-            ADDC TOS,TOS            \ (RLC) shift one left MULTIPLICANDhi8
-            RRA W                   \ shift one right multiplicator
-        U>= UNTIL                   \ carry set
-    THEN                            \
+    GOTO FW1                        \
+    BEGIN
+        ADD X,X                     \ (RLA) shift one left MULTIPLICANDlo16
+        ADDC TOS,TOS                \ (RLC) shift one left MULTIPLICANDhi8
+FW1     RRA W                       \ shift one right multiplicator
+    U>= UNTIL                       \ carry set
     ADD     &OrgClusters,X          \ add OrgClusters = sector of virtual cluster 0 (word size)
     MOV     X,0(PSP)      
     ADDC    #0,TOS                  \ don't forget carry
-    JMP     SECTOR                  \ jump to a defined word
+    GOTO    BW1                     \ jump to SECTOR
+ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+CODE FAT                            \ Display CurFATsector
+\ ----------------------------------\
+    SUB     #4,PSP                  \
+    MOV     TOS,2(PSP)              \
+    MOV     &OrgFAT1,0(PSP)         \
+    MOV     #0,TOS                  \ FATsectorHI = 0
+    GOTO    BW1                     \ jump to SECTOR
 ENDCODE
 \ ----------------------------------\
 
@@ -152,7 +193,12 @@ CODE DIR                            \ Display CurrentDir first sector
     MOV     TOS,2(PSP)              \           save TOS
     MOV     &DIRclusterL,0(PSP)     \
     MOV     &DIRclusterH,TOS        \
-    JMP     CLUSTER                 \
+    CMP     #0,TOS
+    0<>     ?GOTO BW2               \ jump to CLUSTER
+    CMP     #1,0(PSP)               \ cluster 1 ?
+    0<>     ?GOTO BW2               \ jump to CLUSTER
+    MOV     &OrgRootDir,0(PSP)      \ if yes, special case of FAT16 OrgRootDir
+    GOTO    BW1                     \ jump to SECTOR
 ENDCODE
 \ ----------------------------------\
 
@@ -161,7 +207,4 @@ RST_HERE
 
 [THEN]
 ECHO
-; added : FAT to DUMP first sector of FAT1 and DIR for that of current DIRectory.
-; added : SECTOR to DUMP a sector and CLUSTER for first sector of a cluster:
-;         include a decimal point to force 32 bits number, example : .2 CLUSTER
 
index 86956ee..337747d 100644 (file)
 \
 \ FORTH conditionnal    : 0= 0< = < > U<
 
+[UNDEFINED] + [IF]
+\ https://forth-standard.org/standard/core/Plus
+\ +       n1/u1 n2/u2 -- n3/u3     add n1+n2
+CODE +
+ADD @PSP+,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {UTILITY}
+
+CODE MAX    \    n1 n2 -- n3       signed maximum
+    CMP @PSP,TOS    \ n2-n1
+    S<  ?GOTO FW1   \ n2<n1
+BW1 ADD #2,PSP
+    MOV @IP+,PC
+ENDCODE
+
+CODE MIN    \    n1 n2 -- n3       signed minimum
+    CMP @PSP,TOS     \ n2-n1
+    S<  ?GOTO BW1    \ n2<n1
+FW1 MOV @PSP+,TOS
+    MOV @IP+,PC
+ENDCODE
+
+[THEN]
+
+[UNDEFINED] C@ [IF]
+\ https://forth-standard.org/standard/core/CFetch
+\ C@     c-addr -- char   fetch char from memory
+CODE C@
+MOV.B @TOS,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] VARIABLE [IF]
+\ https://forth-standard.org/standard/core/VARIABLE
+\ VARIABLE <name>       --                      define a Forth VARIABLE
+: VARIABLE 
+DEFER
+HI2LO
+MOV @RSP+,IP
+MOV #DOVAR,-4(W)        \   CFA = DOVAR
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] CONSTANT [IF]
+\ https://forth-standard.org/standard/core/CONSTANT
+\ CONSTANT <name>     n --                      define a Forth CONSTANT 
+: CONSTANT 
+DEFER
+HI2LO
+MOV @RSP+,IP
+MOV #DOCON,-4(W)        \   CFA = DOCON
+MOV TOS,-2(W)           \   PFA = n
+MOV @PSP+,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+\ https://forth-standard.org/standard/core/SPACE
+\ SPACE   --               output a space
+: SPACE
+$20 EMIT ;
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+\ https://forth-standard.org/standard/core/SPACES
+\ SPACES   n --            output n spaces
+CODE SPACES
+CMP #0,TOS
+0<> IF
+    PUSH IP
+    BEGIN
+        LO2HI
+        $20 EMIT
+        HI2LO
+        SUB #2,IP 
+        SUB #1,TOS
+    0= UNTIL
+    MOV @RSP+,IP
+THEN
+MOV @PSP+,TOS           \ --         drop n
+NEXT              
+ENDCODE
+[THEN]
+
+[UNDEFINED] OVER [IF]
+\ https://forth-standard.org/standard/core/OVER
+\ OVER    x1 x2 -- x1 x2 x1
+CODE OVER
+MOV TOS,-2(PSP)     \ 3 -- x1 (x2) x2
+MOV @PSP,TOS        \ 2 -- x1 (x2) x1
+SUB #2,PSP          \ 1 -- x1 x2 x1
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
+: U.R                       \ u n --           display u unsigned in n width (n >= 2)
+  >R  <# 0 # #S #>  
+  R> OVER - 0 MAX SPACES TYPE
+;
+[THEN]
+
+[UNDEFINED] DUMP [IF]       \ defined in {UTILITY}
+\ https://forth-standard.org/standard/tools/DUMP
+CODE DUMP                   \ adr n  --   dump memory
+PUSH IP
+PUSH &BASEADR               \ save current base
+MOV #$10,&BASEADR           \ HEX base
+ADD @PSP,TOS                \ -- ORG END
+LO2HI
+  SWAP                      \ -- END ORG
+  DO  CR                    \ generate line
+    I 4 U.R SPACE           \ generate address
+      I 8 + I
+      DO I C@ 3 U.R LOOP
+      SPACE
+      I $10 + I 8 +
+      DO I C@ 3 U.R LOOP  
+      SPACE SPACE
+      I $10 + I             \ display 16 chars
+      DO I C@ $7E MIN $20 MAX EMIT LOOP
+  $10 +LOOP
+  R> BASEADR !              \ restore current base
+;
+[THEN]
+
 \ -----------------------------------------------------------------------
 \ test CPUx instructions PUSHM, POPM, RLAM, RRAM, RRCM, RRUM
 \ -----------------------------------------------------------------------
 CODE TESTPUSHM
+BW1
 \            PUSHM  #16,R14     \ uncomment to test error "out of bounds"
 \            PUSHM  #2,R0       \ uncomment to test error "out of bounds"
 \            PUSHM  #0,IP       \ uncomment to test error "out of bounds"
@@ -61,7 +194,7 @@ CODE TESTPUSHM
 TESTPUSHM  ; you should see 11111 3 2 1 0 -->
 
 CODE TESTPOPM
-            JMP TESTPUSHM
+            GOTO BW1            \ JMP TESTPUSHM
 ENDCODE
 
     \
@@ -75,13 +208,13 @@ TESTPOPM  ; you should see 11111 3 2 1 0 -->
 \ -----------------------------------------------------------------------
 CODE TEST1                  \ the word "CODE" add ASSEMBLER as CONTEXT vocabulary...
 
-            MOV &BASE,&BASE \ to test &xxxx src operand
-            CMP #%10,&BASE
-0<> IF      MOV #2,&BASE    \ if base <> 2
-ELSE        MOV #$0A,&BASE  \ else base = 2
+            MOV &BASEADR,&BASEADR \ to test &xxxx src operand
+            CMP #%10,&BASEADR
+0<> IF      MOV #2,&BASEADR    \ if base <> 2
+ELSE        MOV #$0A,&BASEADR  \ else base = 2
 THEN        
             COLON           \ tips : no "ok" displayed in start of line <==> compilation mode
-            BASE @ U.       \ always display 10 !
+            BASEADR @ U.       \ always display 10 !
             ;
     \
 
@@ -89,13 +222,13 @@ THEN
 \ test a word that starts as word FORTH and ends as assembly word
 \ -----------------------------------------------------------------------
 : TEST2                     \ ":" starts compilation
-            BASE @ U.       \ always display 10 !
+            BASEADR @ U.       \ always display 10 !
             HI2LO           \ switch FORTH to ASM : compile one word (next address)
                             \                       add vocabulary ASSEMBLER as CONTEXT vocabulary
                             \                       switch in interpret mode
-            CMP #2, &BASE
-0<> IF      MOV #2, &BASE   \ if variable system BASE <> 2
-ELSE        MOV #10,&BASE   \ else (BASE = 2)
+            CMP #2, &BASEADR
+0<> IF      MOV #2, &BASEADR   \ if variable system BASE <> 2
+ELSE        MOV #10,&BASEADR   \ else (BASE = 2)
 THEN
 \           MOV #EXIT,PC    \ to pair with ":" i.e. to restore IP saved by : then execute NEXT. 
 \ but even compile two words, it's better to compile an inline EXIT :
@@ -108,11 +241,11 @@ ENDCODE                     \ ends assembler : remove vocabulary ASSEMBLER from
 \ test a word that starts as assembly word and ends as FORTH word
 \ -----------------------------------------------------------------------
 CODE TEST3                  \ "CODE" starts assembler, i.e. add ASSEMBLER as CONTEXT vocabulary
-            CMP #2, &BASE
-0<> IF      MOV #2, &BASE   \ if variable system BASE <> 2
-ELSE        MOV #10,&BASE   \ else (BASE = 2)
+            CMP #2, &BASEADR
+0<> IF      MOV #2, &BASEADR   \ if variable system BASE <> 2
+ELSE        MOV #10,&BASEADR   \ else (BASE = 2)
 THEN        COLON           \
-            BASE @  U.      \ always display 10 !
+            BASEADR @  U.      \ always display 10 !
 ;                           \
     \
 
@@ -145,6 +278,27 @@ TEST5  ; you should see :  9 8 7 6 5 4 3 2 1 0 -->
 \ tests indexing address
 \ -----------------------------------------------------------------------
 
+[UNDEFINED] C, [IF]
+\ https://forth-standard.org/standard/core/CComma
+\ C,   char --        append char
+CODE C,
+MOV &DP,W
+MOV.B TOS,0(W)
+ADD #1,&DP
+MOV @PSP+,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] C@ [IF]
+\ https://forth-standard.org/standard/core/CFetch
+\ C@     c-addr -- char   fetch char from memory
+CODE C@
+MOV.B @TOS,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
 : BYTES_TABLE_IDX
 CREATE 
 0 DO I C,
@@ -279,15 +433,20 @@ TABLE20 PFA_TABLE ! TABLE 10 DUMP
 ; create a primary DEFERred assembly word
 ; -----------------------------------------------------------------------
 
+
 DEFER TRUC              ; here, TRUC is a secondary DEFERred word (i.e. without BODY)
     \
 
+
 CODENNM                 ; leaves its execution address (CFA) on stack
     SUB #2,PSP
     MOV TOS,0(PSP)
     MOV @IP+,PC
 ENDCODE 
-DUP . IS TRUC         ; TRUC becomes a primary DEFERred word
+
+DUP .
+
+IS TRUC                 ; TRUC becomes a primary DEFERred word
                         ; with its default action (DUP) located at its BODY addresse.
 
 TRUC .                  ; display TOS value -->
@@ -299,7 +458,7 @@ TRUC .                  ; display TOS value -->
 TRUC .                  ; display TOS value --> 
 
 \ ' DROP IS TRUC          ; TRUC is redirected to DROP
-\ 
+\  
 \ TRUC                   ; The generated error displays stack empty! in reverse video, removes the TRUC definition and restarts the interpretation after the end of the file. And as you see, FastForth is able to display long lines, interesting, doesn't it? --> 
 \    
 \ bla
index e70dd06..cffa9e3 100644 (file)
@@ -26,6 +26,134 @@ ECHO
 
 PWR_STATE
 
+[UNDEFINED] + [IF]
+\ https://forth-standard.org/standard/core/Plus
+\ +       n1/u1 n2/u2 -- n3/u3     add n1+n2
+CODE +
+ADD @PSP+,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {UTILITY}
+
+CODE MAX    \    n1 n2 -- n3       signed maximum
+    CMP @PSP,TOS    \ n2-n1
+    S<  ?GOTO FW1   \ n2<n1
+BW1 ADD #2,PSP
+    MOV @IP+,PC
+ENDCODE
+
+CODE MIN    \    n1 n2 -- n3       signed minimum
+    CMP @PSP,TOS     \ n2-n1
+    S<  ?GOTO BW1    \ n2<n1
+FW1 MOV @PSP+,TOS
+    MOV @IP+,PC
+ENDCODE
+
+[THEN]
+
+[UNDEFINED] C@ [IF]
+\ https://forth-standard.org/standard/core/CFetch
+\ C@     c-addr -- char   fetch char from memory
+CODE C@
+MOV.B @TOS,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] CONSTANT [IF]
+\ https://forth-standard.org/standard/core/CONSTANT
+\ CONSTANT <name>     n --                      define a Forth CONSTANT 
+: CONSTANT 
+DEFER
+HI2LO
+MOV @RSP+,IP
+MOV #DOCON,-4(W)        \   CFA = DOCON
+MOV TOS,-2(W)           \   PFA = n
+MOV @PSP+,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] BL [IF]
+\ https://forth-standard.org/standard/core/BL
+\ BL      -- char            an ASCII space
+#32 CONSTANT BL
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+\ https://forth-standard.org/standard/core/SPACE
+\ SPACE   --               output a space
+: SPACE
+BL EMIT ;
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+\ https://forth-standard.org/standard/core/SPACES
+\ SPACES   n --            output n spaces
+CODE SPACES
+CMP #0,TOS
+0<> IF
+    PUSH IP
+    BEGIN
+        LO2HI
+        BL EMIT
+        HI2LO
+        SUB #2,IP 
+        SUB #1,TOS
+    0= UNTIL
+    MOV @RSP+,IP
+THEN
+MOV @PSP+,TOS           \ --         drop n
+NEXT              
+ENDCODE
+[THEN]
+
+[UNDEFINED] OVER [IF]
+\ https://forth-standard.org/standard/core/OVER
+\ OVER    x1 x2 -- x1 x2 x1
+CODE OVER
+MOV TOS,-2(PSP)     \ 3 -- x1 (x2) x2
+MOV @PSP,TOS        \ 2 -- x1 (x2) x1
+SUB #2,PSP          \ 1 -- x1 x2 x1
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] U.R [IF]        \ defined in {UTILITY}
+: U.R                       \ u n --           display u unsigned in n width (n >= 2)
+  >R  <# 0 # #S #>  
+  R> OVER - 0 MAX SPACES TYPE
+;
+[THEN]
+
+[UNDEFINED] DUMP [IF]       \ defined in {UTILITY}
+\ https://forth-standard.org/standard/tools/DUMP
+CODE DUMP                   \ adr n  --   dump memory
+PUSH IP
+PUSH &BASEADR               \ save current base
+MOV #$10,&BASEADR           \ HEX base
+ADD @PSP,TOS                \ -- ORG END
+LO2HI
+  SWAP                      \ -- END ORG
+  DO  CR                    \ generate line
+    I 4 U.R SPACE           \ generate address
+      I 8 + I
+      DO I C@ 3 U.R LOOP
+      SPACE
+      I $10 + I 8 +
+      DO I C@ 3 U.R LOOP  
+      SPACE SPACE
+      I $10 + I             \ display 16 chars
+      DO I C@ $7E MIN BL MAX EMIT LOOP
+  $10 +LOOP
+  R> BASEADR !              \ restore current base
+;
+[THEN]
+
+PWR_HERE
+
 ; --------------------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES IV : Adda|Cmpa|Mova|Suba (without extended word)
 ; --------------------------------------------------------------------------------
@@ -403,11 +531,11 @@ PWR_STATE
 
 
 : %.
-BASE @ %10 BASE ! SWAP 8 EMIT . BASE !
+BASEADR @ %10 BASEADR ! SWAP 8 EMIT . BASEADR !
 ;
 
 : %U.
-BASE @ %10 BASE ! SWAP 8 EMIT U. BASE ! ;
+BASEADR @ %10 BASEADR ! SWAP 8 EMIT U. BASEADR ! ;
 
 PWR_HERE
 
@@ -424,7 +552,7 @@ RRUX Y
 SUB #2,PSP
 MOV TOS,0(PSP)
 MOV Y,TOS
-JMP %.
+MOV #%.,PC
 ENDCODE
 
 RRUX_T ; you should see %111100001111000 --> %
@@ -438,12 +566,12 @@ PWR_STATE
 
 CODE RRUX_T
 MOV #$F0F0,Y
-RPT #0
+RPT #1
 RRUX Y
 SUB #2,PSP
 MOV TOS,0(PSP)
 MOV Y,TOS
-JMP %.
+MOV #%.,PC
 ENDCODE
 
 RRUX_T ; you should see %111100001111000 --> %
@@ -452,12 +580,12 @@ PWR_STATE
 
 CODE RRUX_T
 MOV #$F0F0,Y
-RPT #3
+RPT #4
 RRUX Y
 SUB #2,PSP
 MOV TOS,0(PSP)
 MOV Y,TOS
-JMP %.
+MOV #%.,PC
 ENDCODE
 
 RRUX_T ; you should see %111100001111 --> %
@@ -466,12 +594,12 @@ PWR_STATE
 
 CODE RRUX_T
 MOV #$F0F0,Y
-RPT #7
+RPT #8
 RRUX Y
 SUB #2,PSP
 MOV TOS,0(PSP)
 MOV Y,TOS
-JMP %.
+MOV #%.,PC
 ENDCODE
 
 RRUX_T ; you should see %11110000 --> %
@@ -491,7 +619,7 @@ RRCX Y
 SUB #2,PSP
 MOV TOS,0(PSP)
 MOV Y,TOS
-JMP %U.
+MOV #%U.,PC
 ENDCODE
 
 RRCX_T ; you should see %100000000000000 --> %
@@ -505,12 +633,12 @@ PWR_STATE
 CODE RRCX_T
 MOV #$8000,Y
 BIC #C,SR
-RPT #0
+RPT #1
 RRCX Y
 SUB #2,PSP
 MOV TOS,0(PSP)
 MOV Y,TOS
-JMP %U.
+MOV #%U.,PC
 ENDCODE
 
 RRCX_T ; you should see %100000000000000 --> %
@@ -520,12 +648,12 @@ PWR_STATE
 CODE RRCX_T
 MOV #$8000,Y
 BIC #C,SR
-RPT #7
+RPT #8
 RRCX Y
 SUB #2,PSP
 MOV TOS,0(PSP)
 MOV Y,TOS
-JMP %U.
+MOV #%U.,PC
 ENDCODE
 
 RRCX_T ; you should see %10000000 --> %
@@ -543,7 +671,7 @@ RRAX Y
 SUB #2,PSP
 MOV TOS,0(PSP)
 MOV Y,TOS
-JMP %.
+MOV #%.,PC
 ENDCODE
 
 RRAX_T ; you should see %-100000000000000 --> %
@@ -557,12 +685,12 @@ PWR_STATE
 
 CODE RRAX_T
 MOV #$8000,Y
-RPT #0
+RPT #1
 RRAX Y
 SUB #2,PSP
 MOV TOS,0(PSP)
 MOV Y,TOS
-JMP %.
+MOV #%.,PC
 ENDCODE
 
 RRAX_T ; you should see %-100000000000000 --> %
@@ -571,12 +699,12 @@ PWR_STATE
 
 CODE RRAX_T
 MOV #$8000,Y
-RPT #1
+RPT #2
 RRAX Y
 SUB #2,PSP
 MOV TOS,0(PSP)
 MOV Y,TOS
-JMP %.
+MOV #%.,PC
 ENDCODE
 
 RRAX_T ; you should see %-10000000000000 --> %
@@ -585,12 +713,12 @@ PWR_STATE
 
 CODE RRAX_T
 MOV #$8000,Y
-RPT #2
+RPT #3
 RRAX Y
 SUB #2,PSP
 MOV TOS,0(PSP)
 MOV Y,TOS
-JMP %.
+MOV #%.,PC
 ENDCODE
 
 RRAX_T ; you should see %-1000000000000 --> %
@@ -599,12 +727,12 @@ PWR_STATE
 
 CODE RRAX_T
 MOV #$8000,Y
-RPT #6
+RPT #7
 RRAX Y
 SUB #2,PSP
 MOV TOS,0(PSP)
 MOV Y,TOS
-JMP %.
+MOV #%.,PC
 ENDCODE
 
 RRAX_T ; you should see %-100000000 --> %
@@ -636,7 +764,7 @@ PWR_STATE
 
 CODE RLAX_T
 MOV #-1,Y
-RPT #0
+RPT #1
 ADDX Y,Y
 SUB #2,PSP
 MOV TOS,0(PSP)
@@ -650,7 +778,7 @@ PWR_STATE
 
 CODE RLAX_T
 MOV #-1,Y
-RPT #1
+RPT #2
 ADDX Y,Y
 SUB #2,PSP
 MOV TOS,0(PSP)
@@ -664,7 +792,7 @@ PWR_STATE
 
 CODE RLAX_T
 MOV #-1,Y
-RPT #2
+RPT #3
 ADDX Y,Y
 SUB #2,PSP
 MOV TOS,0(PSP)
@@ -678,7 +806,7 @@ PWR_STATE
 
 CODE RLAX_T
 MOV #-1,Y
-RPT #7
+RPT #8
 ADDX Y,Y
 SUB #2,PSP
 MOV TOS,0(PSP)
@@ -717,7 +845,7 @@ PWR_STATE
 CODE ADDX_T
 MOV #0,Y
 MOV #-1,X
-RPT #0
+RPT #1
 ADDX X,Y
 SUB #2,PSP
 MOV TOS,0(PSP)
@@ -732,7 +860,7 @@ PWR_STATE
 CODE ADDX_T
 MOV #0,Y
 MOV #-1,X
-RPT #1
+RPT #2
 ADDX X,Y
 SUB #2,PSP
 MOV TOS,0(PSP)
@@ -747,7 +875,7 @@ PWR_STATE
 CODE ADDX_T
 MOV #0,Y
 MOV #-1,X
-RPT #7
+RPT #8
 ADDX X,Y
 SUB #2,PSP
 MOV TOS,0(PSP)
@@ -787,7 +915,7 @@ PWR_STATE
 CODE SUBX_T
 MOV #0,Y
 MOV #-1,X
-RPT #0
+RPT #1
 SUBX X,Y
 SUB #2,PSP
 MOV TOS,0(PSP)
@@ -802,7 +930,7 @@ PWR_STATE
 CODE SUBX_T
 MOV #0,Y
 MOV #-1,X
-RPT #1
+RPT #2
 SUBX X,Y
 SUB #2,PSP
 MOV TOS,0(PSP)
@@ -817,7 +945,7 @@ PWR_STATE
 CODE SUBX_T
 MOV #0,Y
 MOV #-1,X
-RPT #7
+RPT #8
 SUBX X,Y
 SUB #2,PSP
 MOV TOS,0(PSP)
@@ -830,7 +958,7 @@ SUBX_T ; you should see 8 -->
 PWR_STATE
 
 CODE SUBX_T     \ W register = R10
-MOV #15,W       \ RPT [W] times, modulo 16 <--> RPT #15
+MOV #15,W       \ RPT [W] times, modulo 16 <--> RPT #16
 MOV #0,Y
 MOV #-1,X
 RPT W
@@ -846,7 +974,7 @@ SUBX_T ; you should see 16 -->
 PWR_STATE
 
 CODE SUBX_T
-MOV #32,W       \ RPT [W] times, modulo 16 <--> RPT #0
+MOV #32,W       \ RPT [W] times, modulo 16 <--> RPT #1
 MOV #0,Y
 MOV #-1,X
 RPT W
@@ -862,7 +990,7 @@ SUBX_T ; you should see 1 -->
 PWR_STATE
 
 CODE SUBX_T
-MOV #33,W       \ RPT [W] times, modulo 16 <--> RPT #1
+MOV #33,W       \ RPT [W] times, modulo 16 <--> RPT #2
 MOV #0,Y
 MOV #-1,X
 RPT W
@@ -875,3 +1003,4 @@ ENDCODE
 
 SUBX_T ; you should see 2 -->
 
+RST_STATE
diff --git a/MSP430-FORTH/TSTWORDS.4th b/MSP430-FORTH/TSTWORDS.4th
deleted file mode 100644 (file)
index 4134fbc..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-\ -----------------------------
-\ MSP-EXP430FR5969_TSTWORDS.4th
-\ -----------------------------
-
-PWR_STATE
-
-\ -----------------------------------------------------------------------
-\ test some assembler words and show how to mix FORTH/ASSEMBLER routines
-\ -----------------------------------------------------------------------
-LOAD" \misc\TestASM.4th"
-
-\ -------------------------------------
-\ here we returned in the TestWords.4th
-\ -------------------------------------
-ECHO
-\ ----------
-\ LOOP tests
-\ ----------
-: LOOP_TEST 8 0 DO I . LOOP 
-;
-
-LOOP_TEST   \ you should see 0 1 2 3 4 5 6 7 -->
-
-
-: LOOP_TEST1    \   n <LOOP_TEST1> ---
-
-    BEGIN   DUP U. 1 -
-    ?DUP
-    0= UNTIL 
-;
-
-: LOOP_MAX      \ FIND_NOTHING      --
-    0 0
-    DO
-    LOOP            \ 14 cycles by loop
-    ABORT" 65536 LOOP " 
-;
-
- : FIND_TEST            \ FIND_TEST <word>     --
-    BL WORD             \ -- c-addr
-        50000 0 
-        DO              \ -- c-addr 
-            DUP   
-            FIND DROP DROP
-        LOOP
-     FIND
-     0=  IF ABORT" <-- not found !"
-         ELSE ABORT" <-- found !"
-         THEN 
-  ;
-      
-\ seeking $ word, FIND jumps all words on their first character so time of word loop is 20 cycles
-\ see FIND in the source file for more information
-  
-\ FIND_TEST <lastword> result @ 8MHz, monothread : 1,2s  
-
-\ FIND_TEST $ results @ 8MHz, monothread, 201 words in vocabulary FORTH :
-\ 27 seconds with only FORTH vocabulary in CONTEXT
-\ 540 us for one search ( which gives the delay for QNUMBER in INTERPRET routine)
-\ 2.6866 us / word, 21,49 cycles / word (for 20 cycles calculated (see FIND in source file)
-
-
-\ FIND_TEST $ results @ 8MHz, 2 threads, 201 words in vocabulary FORTH :
-\ 13 second with only FORTH vocabulary in CONTEXT
-\ 260 us for one search ( which gives the delay for QNUMBER in INTERPRET routine)
-\ 1,293 us / word, 10,34 cycles / word
-
-\ FIND_TEST $ results @ 8MHz, 4 threads, 201 words in vocabulary FORTH :
-\ 8 second with only FORTH vocabulary in CONTEXT
-\ 160 us for one search ( which gives the delay for QNUMBER in INTERPRET routine)
-\ 0,796 us / word, 6,37 cycles / word 
-
-\ FIND_TEST $ results @ 8MHz, 8 threads, 201 words in vocabulary FORTH :
-\ 4.66 second with only FORTH vocabulary in CONTEXT
-\ 93 us for one search ( which gives the delay for QNUMBER in INTERPRET routine)
-\ 0,4463 us / word, 3,7 cycles / word  
-
-\ FIND_TEST $ results @ 8MHz, 16 threads, 201 words in vocabulary FORTH :
-\ 2,8 second with only FORTH vocabulary in CONTEXT
-\ 56 us for one search ( which gives the delay for QNUMBER in INTERPRET routine)
-\ 0,278 us / word, 2,22 cycles / word  
-
-\ --------
-\ KEY test
-\ --------
-: KEY_TEST
-    ."  type a key : "
-    KEY EMIT    \ wait for a KEY, then emit it
-;
-\ KEY_TEST
index 0ccccec..64128c4 100644 (file)
 \ ASSEMBLER conditionnal usage with ?JMP ?GOTO      S<  S>=  U<   U>=  0=  0<>  0<
 
 
-: DEFINED! ECHO 1 ABORT" already loaded!" ;
-
-[DEFINED] {TOOLS} [IF] DEFINED!
-
-[ELSE]
+[UNDEFINED] {TOOLS} [IF]
 
 PWR_STATE
 
@@ -52,6 +48,34 @@ CODE ?
 ENDCODE
 [THEN]
 
+[UNDEFINED] SPACE [IF]
+\ https://forth-standard.org/standard/core/SPACE
+\ SPACE   --               output a space
+: SPACE
+$20 EMIT ;
+[THEN]
+
+[UNDEFINED] SPACES [IF]
+\ https://forth-standard.org/standard/core/SPACES
+\ SPACES   n --            output n spaces
+CODE SPACES
+CMP #0,TOS
+0<> IF
+    PUSH IP
+    BEGIN
+        LO2HI
+        $20 EMIT
+        HI2LO
+        SUB #2,IP 
+        SUB #1,TOS
+    0= UNTIL
+    MOV @RSP+,IP
+THEN
+MOV @PSP+,TOS           \ --         drop n
+NEXT              
+ENDCODE
+[THEN]
+
 [UNDEFINED] .S [IF]    \
 \ https://forth-standard.org/standard/tools/DotS
 \ .S            --            display <depth> of param Stack and stack contents in hedadecimal if not empty
@@ -71,16 +95,16 @@ COLON
     .                   \ display #cells
     $08 EMIT            \ backspace
     $3E EMIT SPACE      \ char '>' SPACE
-    OVER OVER >         \ 
-    0= IF 
+    2DUP 1+             \ 
+    U< IF 
         DROP DROP EXIT
     THEN                \ display content of stack in hexadecimal
-    BASE @ >R
-    $10 BASE !
+    BASEADR @ >R
+    $10 BASEADR !
     DO 
         I @ U.
     2 +LOOP
-    R> BASE !
+    R> BASEADR !
 ;
 [THEN]
 
@@ -94,51 +118,70 @@ CODE .RS
 ENDCODE
 [THEN]
 
-[UNDEFINED] AND [IF]
+[UNDEFINED] + [IF]
+\ https://forth-standard.org/standard/core/Plus
+\ +       n1/u1 n2/u2 -- n3/u3     add n1+n2
+CODE +
+ADD @PSP+,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
+[UNDEFINED] C@ [IF]
+\ https://forth-standard.org/standard/core/CFetch
+\ C@     c-addr -- char   fetch char from memory
+CODE C@
+MOV.B @TOS,TOS
+MOV @IP+,PC
+ENDCODE
+[THEN]
 
+[UNDEFINED] AND [IF]
 \ https://forth-standard.org/standard/core/AND
 \ C AND    x1 x2 -- x3           logical AND
 CODE AND
 AND @PSP+,TOS
 MOV @IP+,PC
 ENDCODE
-
 [THEN]
 
-[UNDEFINED] PAD [IF]
-
-\ https://forth-standard.org/standard/core/PAD
-\ C PAD    -- addr
-PAD_ORG CONSTANT PAD
-
+[UNDEFINED] ROT [IF]
+\ https://forth-standard.org/standard/core/ROT
+\ ROT    x1 x2 x3 -- x2 x3 x1
+CODE ROT
+MOV @PSP,W          \ 2 fetch x2
+MOV TOS,0(PSP)      \ 3 store x3
+MOV 2(PSP),TOS      \ 3 fetch x1
+MOV W,2(PSP)        \ 3 store x2
+MOV @IP+,PC
+ENDCODE
 [THEN]
 
-
 [UNDEFINED] WORDS [IF]
 \ https://forth-standard.org/standard/tools/WORDS
 \ list all words of vocabulary first in CONTEXT.
 : WORDS                         \ --            
 CR 
-CONTEXT @ PAD                   \ -- VOC_BODY PAD                  MOVE all threads of VOC_BODY in PAD
-INI_THREAD @ DUP +              \ -- VOC_BODY PAD THREAD*2
-MOVE                            \ -- vocabumary entries are copied in PAD
+CONTEXT @ PAD_ORG                   \ -- VOC_BODY PAD_ORG                  MOVE all threads of VOC_BODY in PAD_ORG
+INI_THREAD @ DUP +              \ -- VOC_BODY PAD_ORG THREAD*2
+MOVE                            \ -- vocabumary entries are copied in PAD_ORG
 BEGIN                           \ -- 
     0 DUP                       \ -- ptr=0 MAX=0                
     INI_THREAD @ DUP + 0        \ -- ptr=0 MAX=0 THREADS*2 0
         DO                      \ -- ptr MAX            I =  PAD_ptr = thread*2
-        DUP I PAD + @           \ -- ptr MAX MAX NFAx
+        DUP I PAD_ORG + @           \ -- ptr MAX MAX NFAx
             U< IF               \ -- ptr MAX            if MAX U< NFAx
                 DROP DROP       \ --                    drop ptr and MAX
-                I DUP PAD + @   \ -- new_ptr new_MAX
+                I DUP PAD_ORG + @   \ -- new_ptr new_MAX
             THEN                \ 
         2 +LOOP                 \ -- ptr MAX
-    ?DUP                        \ -- ptr MAX MAX | -- ptr 0 (all threads in PAD = 0)
+    ?DUP                        \ -- ptr MAX MAX | -- ptr 0 (all threads in PAD_ORG = 0)
 WHILE                           \ -- ptr MAX                    replace it by its LFA
     DUP                         \ -- ptr MAX MAX
     2 - @                       \ -- ptr MAX [LFA]
     ROT                         \ -- MAX [LFA] ptr
-    PAD +                       \ -- MAX [LFA] thread
-    !                           \ -- MAX                [LFA]=new_NFA updates PAD+ptr
+    PAD_ORG +                       \ -- MAX [LFA] thread
+    !                           \ -- MAX                [LFA]=new_NFA updates PAD_ORG+ptr
     DUP                         \ -- MAX MAX
     COUNT $7F AND               \ -- MAX addr count (with suppr. of immediate bit)
     TYPE                        \ -- MAX
@@ -146,25 +189,36 @@ WHILE                           \ -- ptr MAX                    replace it by it
     $10 SWAP - SPACES           \ --                    complete with spaces modulo 16 chars
 REPEAT                          \ --
 DROP                            \ ptr --
-;                               \ all threads in PAD are filled with 0
+;                               \ all threads in PAD_ORG are filled with 0
 [THEN]
 
 [UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {ANS_COMP}
     CODE MAX    \    n1 n2 -- n3       signed maximum
         CMP @PSP,TOS    \ n2-n1
         S< ?GOTO FW1    \ n2<n1
-    BW1 ADD #2,PSP
+BW1     ADD #2,PSP
         MOV @IP+,PC
     ENDCODE
 
     CODE MIN    \    n1 n2 -- n3       signed minimum
         CMP @PSP,TOS    \ n2-n1
         S< ?GOTO BW1    \ n2<n1
-    FW1 MOV @PSP+,TOS
+FW1     MOV @PSP+,TOS
         MOV @IP+,PC
     ENDCODE
 [THEN]
 
+[UNDEFINED] OVER [IF]
+\ https://forth-standard.org/standard/core/OVER
+\ OVER    x1 x2 -- x1 x2 x1
+CODE OVER
+MOV TOS,-2(PSP)     \ 3 -- x1 (x2) x2
+MOV @PSP,TOS        \ 2 -- x1 (x2) x1
+SUB #2,PSP          \ 1 -- x1 x2 x1
+MOV @IP+,PC
+ENDCODE
+[THEN]
+
 [UNDEFINED] U.R [IF]
 : U.R                       \ u n --           display u unsigned in n width (n >= 2)
 >R  <# 0 # #S #>  
@@ -176,11 +230,11 @@ R> OVER - 0 MAX SPACES TYPE
 \ https://forth-standard.org/standard/tools/DUMP
 CODE DUMP                   \ adr n  --   dump memory
 PUSH IP
-PUSH &BASE                  \ save current base
-MOV #$10,&BASE              \ HEX base
+PUSH &BASEADR                  \ save current base
+MOV #$10,&BASEADR              \ HEX base
 ADD @PSP,TOS                \ -- ORG END
 LO2HI
-  SWAP OVER OVER            \ -- END ORG END ORG 
+  SWAP 2DUP                 \ -- END ORG END ORG 
   U. U.                     \ -- END ORG        display org end 
   $FFF0 AND                 \ -- END ORG_modulo_16
   DO  CR                    \ generate line
@@ -192,9 +246,9 @@ LO2HI
       DO I C@ 3 U.R LOOP  
       SPACE SPACE
       I $10 + I             \ display 16 chars
-      DO I C@ $7E MIN BL MAX EMIT LOOP
+      DO I C@ $7E MIN $20 MAX EMIT LOOP
   $10 +LOOP
-  R> BASE !                 \ restore current base
+  R> BASEADR !                 \ restore current base
 ;
 [THEN]  \ endof [UNDEFINED] DUMP
 
index 8cc696b..d5161fd 100644 (file)
@@ -182,16 +182,16 @@ ASM WDT_Int                     \ Watchdog interrupt routine, warning : not FORT
 \ ------------------------------\
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-  CMP #34,&TB0CCR2              \ maxi Ton = 34/40 & VDD=3V6 ==> LCD_Vo = -2V2
+  CMP #34,&TB0CCRn              \ maxi Ton = 34/40 & VDD=3V6 ==> LCD_Vo = -2V2
   U< IF
-    ADD #1,&TB0CCR2             \ action for switch S2 (P2.5) : 78 mV / increment
+    ADD #1,&TB0CCRn             \ action for switch S2 (P2.5) : 78 mV / increment
   THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #7,&TB0CCR2         \ mini Ton = 6/40 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #7,&TB0CCRn         \ mini Ton = 6/40 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-        SUB #1,&TB0CCR2         \ action for switch S1 (P2.6) : -78 mV / decrement
+        SUB #1,&TB0CCRn         \ action for switch S1 (P2.6) : -78 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
@@ -470,9 +470,9 @@ BIC.B   #LCD_DB,&LCD_DB_REN     \ lcd_db pullup/down disable
 \ ------------------------------\
 \ set TimerB to generate LCD_V0 via TB0.2 and P1.5/P2.2
 \ ------------------------------\
-    MOV #%1100000,&TB0CCTL2     \ output mode = set/reset \ clear CCIFG
-\    MOV #20,&TB0CCR2           \ contrast adjust : 20/40 ==> LCD_Vo = -1V1|+3V6 (Vcc=3V6)
-    MOV #25,&TB0CCR2            \ contrast adjust : 25/40 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%1100000,&TB0CCTLn     \ output mode = set/reset \ clear CCIFG
+\    MOV #20,&TB0CCRn           \ contrast adjust : 20/40 ==> LCD_Vo = -1V1|+3V6 (Vcc=3V6)
+    MOV #25,&TB0CCRn            \ contrast adjust : 25/40 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
 \ WDT interval init part        \
 \ ------------------------------\
index 98ff652..7f4a459 100644 (file)
@@ -186,16 +186,16 @@ BIC #$F8,0(RSP)                 \ set CPU ON and GIE OFF in retiSR
 \ ------------------------------\
 BIT.B #SW2,&SW2_IN              \ test switch S2
 0= IF                           \ case of switch S2 pressed
-  CMP #34,&TB0CCR2              \ maxi Ton = 34/40 & VDD=3V6 ==> LCD_Vo = -2V2
+  CMP #34,&TB0CCRn              \ maxi Ton = 34/40 & VDD=3V6 ==> LCD_Vo = -2V2
   U< IF
-    ADD #1,&TB0CCR2             \ action for switch S2 (P2.5) : 78 mV / increment
+    ADD #1,&TB0CCRn             \ action for switch S2 (P2.5) : 78 mV / increment
   THEN
 ELSE
     BIT.B #SW1,&SW1_IN          \ test switch S1 input
     0= IF                       \ case of Switch S1 pressed
-        CMP #7,&TB0CCR2         \ mini Ton = 6/40 & VDD=3V6 ==> LCD_Vo = 0V
+        CMP #7,&TB0CCRn         \ mini Ton = 6/40 & VDD=3V6 ==> LCD_Vo = 0V
         U>= IF                  \
-        SUB #1,&TB0CCR2         \ action for switch S1 (P2.6) : -78 mV / decrement
+        SUB #1,&TB0CCRn         \ action for switch S1 (P2.6) : -78 mV / decrement
         THEN                    \
     THEN                        \
 THEN                            \
@@ -252,9 +252,9 @@ CODE START                      \
 \ ------------------------------\
 \ set TimerB to generate LCD_V0 via TB0.2 and P1.5/P2.2
 \ ------------------------------\
-    MOV #%1100000,&TB0CCTL2     \ output mode = set/reset \ clear CCIFG
-\    MOV #20,&TB0CCR2            \ contrast adjust : 20/40 ==> LCD_Vo = -1V1|+3V6 (Vcc=3V6)
-    MOV #25,&TB0CCR2            \ contrast adjust : 25/40 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
+    MOV #%1100000,&TB0CCTLn     \ output mode = set/reset \ clear CCIFG
+\    MOV #20,&TB0CCRn            \ contrast adjust : 20/40 ==> LCD_Vo = -1V1|+3V6 (Vcc=3V6)
+    MOV #25,&TB0CCRn            \ contrast adjust : 25/40 ==> LCD_Vo = -1V4|+3V3 (Vcc=3V3)
 \ ------------------------------\
 \ ------------------------------\
 \ WDT interval init part        \
index 34b04dc..4861bf5 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,23 +1,22 @@
 FastForth for MSP430FRxxxx TI's chips, from 16k FRAM 
 ==================================================
 
-Tested on all MSP-EXP430FRxxxx TI launchpads (5739,5969,5994,6989,4133,2355,2433) and CHIPSTICKFR2433, at 0.5, 1, 2, 4, 8, 12, 16 MHz plus 20MHz and 24MHz with FR23xx,FR57xx devices.
+Tested on all MSP-EXP430FRxxxx TI launchpads (5739,5969,5994,6989,4133,2355,2433,2476), at 0.5, 1, 2, 4, 8, 12, 16 MHz plus 20MHz and 24MHz with FR23xx,FR57xx devices.
 
-Fast Forth is a fast and well-made embedded interpreter/assembler/compiler, very interesting because of its size of 6 KB.
-This includes the FORTH language, a symbolic assembler without labels, conditional compilation, a 16-input search engine which
-speeds up the Forth interpreter by a factor of 4 and a connection to the serial terminal (TERATERM.exe), with 3 wires software flow control (XON/XOFF) and/or 4 wires hardware control flow, up to 6 Mbds.
-If your goal is to program a MSP430FRxxxx in assembler, FAST FORTH is the Swiss Army knife you absolutely need!
+Fast Forth is a fast and well-made embedded interpreter/assembler/compiler, very interesting because of its size under 5.5 KB.
+This includes the FORTH language, an amazing and powerful assembler with conditional compilation, a 16-input search engine which
+speeds up the Forth interpreter by a factor of 4, and a connection to the serial terminal (TERATERM.exe), with 3 wires software flow control (XON/XOFF) and/or 4 wires hardware control flow, up to 6 Mbds.
+If your goal is to program a MSP430FRxxxx in assembler or just to learn assembler, enjoy yourself, try it!
 However, if the IDE works well with Windows 10, it works less well with Linux which suffers from the lack of a good alternative to TERATERM...
 
 For only 3 kbytes in addition, you have the primitives to access the SD\_CARD FAT16 and FAT32: read, write, del, download source files and to copy them from PC to the SD_Card.
-It works with all SD\_CARD memories from 64MB to 64GB. The cycle of read/write byte is below 1 us @ 16 MHz.
+It works with all SD\_CARD memories from 64MB to 64GB. The cycle of read/write byte is below 1 us @ 16 MHz.
 This enables to make a fast data logger with a small footprint as a MSP430FR5738 QFN24.
 
-With all kernel options, including extended_ASM, FastForth size is 11kB.
+With all kernel options, including extended_ASM and SD_Card driver, FastForth size is below 10.5 kB.
 
-    The files launchpad_xMHz.txt are the executables ready to use with 
-    a PL2303HXD cable and a serial terminal (TERATERM.exe) at 115200Bds with XON/XOFF,
-    or RTS hardware flow control
+    The files launchpad_xMHz.txt are the executables ready to use with a PL2303HXD cable and
+    a serial terminal (TERATERM.exe) at 115200Bds with XON/XOFF, or RTS hardware flow control
     ------------------------------------------------------------------------------------------
     WARNING! don't use it to supply your launchpad: red wire is 5V ==> MSP430FRxxxx destroyed!
     ------------------------------------------------------------------------------------------
@@ -33,20 +32,20 @@ With all kernel options, including extended_ASM, FastForth size is 11kB.
     The interest of XON/XOFF flow control is to allow 3.75kV galvanic isolation of terminal input
     with SOIC8 Si8622EC|ISO7421E, or better yet, powered 5kV galvanic isolation with SOIC16 ISOW7821.
     
-    If you want to change the terminal baudrate on the fly (230400 bds up to 6 Mbds),
-    download to your launchpad the file \MSP430-FORTH\CHNGBAUD.4th.
-    
-    To see all compilation options, download \MSP430-FORTH\FF_SPECS.4th.
-    
     Once the Fast Forth kernel is loaded in the target FRAM memory, you add assembly code or 
     FORTH code, or both, by downloading your source files that the embedded FastForth interprets and
     compiles.
     Beforehand, the preprocessor GEMA, by means of a \config\gema\target.pat file, will have translated
-    the generic source file.f in a targeted source file.4th. This allows the assembler to use
-    symbolic addresses for all peripheral registers without having to declare them in the embedded FORTH.
+    your generic source file.f in a targeted source file.4th. This allows the embedded assembler to use
+    symbolic addresses for all peripheral registers without having to declare them with FORTH words.
     A set of .bat files in \MSP430-FORTH folder is furnished to do all this automatically.
+    
+    If you want to change the terminal baudrate on the fly (230400 bds up to 6 Mbds),
+    download to your launchpad the file \MSP430-FORTH\CHNGBAUD.f.
+    
+    To see all compilation options, download \MSP430-FORTH\FF_SPECS.f.
 
-    The download/interpret/compile/execute of a source_file.4th (without comments) is done
+    The download/interpret/compile/execute of a source_file is done
     at a throughput of 40/80/120 kbytes/s with a 8/16/24 MHz clock and at maximum allowed baudrate. 
     Considering a ratio 5/1, that of the compiled code is 8/16/24 kbytes/s.
 
@@ -54,14 +53,35 @@ With all kernel options, including extended_ASM, FastForth size is 11kB.
     without errors which ensures its compatibility with the FORTH CORE ANS94 standard.
 
     Notice that FAST FORTH interprets lines up to 84 chars, only SPACE as delimiter, only CR+LF as
-        End Of Line, and BACKSPACE. 
+    End Of Line, and BACKSPACE. 
     And that the high limit of FORTH program memory is $FF80. 
 
     Finally, using the SCITE editor as IDE, all is ready to do everything from its "tools" menu.
+    Once the Forth kernel is programmed, say goodbye to owner's any DLL and FET dongle...
 
 What is new ?
 -------------
 
+V301
+
+    -584 bytes, Kernel+CondComp+Assembler is under 5.5 kb.
+   
+    the FORTH kernel is drastically reduced to 82 words, just what the operating system needs.
+    All others are moved in the \ADDON\ANS_COMPLEMENT.asm file, the conditionnal compilation
+    allowing you to use them on request.
+   
+    Taking into account the new TI launchpad LP_MSP430FR2476.
+    
+    Fixed: :NONAME (now aligned), LOAD" (no more crash on error).
+    Modified: ACCEPT, WORD, HEADER, CODE, ENDCODE, ASM, GOTO, ?GOTO, RPT.
+    Removed JMP <word> and ?JMP <word> from assembler (replaced by GOTO BWx and ?GOTO BWx).
+    
+    ACCEPT is modified to include the RXON call in the word SLEEP. 
+    By rewriting the defered word SLEEP, we can easily disable the TERMINAL_INPUT interrupt.
+    See BACKGROUND, START and STOP  in \MSP430-FORTH\RC5toLCD.f.
+
+
+
 V300
 
     -4 bytes.
@@ -1078,6 +1098,9 @@ I have added possibility of several "non canonical" jumps, up to 3 backward and
         MOV @IP+,PC     \ 4
     ENDCODE
 
+Forward labels FWx are for single use, Backward labels BWx can solve several jumps.
+
+
 
 SYMBOLIC ASSEMBLER ? YES !
 --
index 0c2329b..83146f9 100644 (file)
@@ -611,11 +611,11 @@ import \config\hex
 import \config\others
 
 #if PLAT_GTK
-import /media/jeanmi/DATA/CloudStation/config/asm
-import /media/jeanmi/DATA/CloudStation/config/forth
-import /media/jeanmi/DATA/CloudStation/config/fortran
-import /media/jeanmi/DATA/CloudStation/config/hex
-import /media/jeanmi/DATA/CloudStation/config/others
+import /media/jeanmi/DATA/CloudStation/projets/msp430/config/asm
+import /media/jeanmi/DATA/CloudStation/projets/msp430/config/forth
+import /media/jeanmi/DATA/CloudStation/projets/msp430/config/fortran
+import /media/jeanmi/DATA/CloudStation/projets/msp430/config/hex
+import /media/jeanmi/DATA/CloudStation/projets/msp430/config/others
 
 
 # Error list styles
index c9fa607..6408f17 100644 (file)
 @1800
-10 00 08 00 A1 F7 80 3E 05 00 18 00 C4 DC 8A D2
-2C 01 7B 30 FC C7 0E C8
+10 00 08 00 A1 F7 80 3E 05 00 18 00 66 DA D0 D0
+2D 01 6B 30 B6 C6 C8 C6
 @C400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C4
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C4 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C4 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C4 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C4 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C4 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C4 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C4 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C4 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C5 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C4 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C5 02 31 2D 00
-1E 83 30 4D D8 C4 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C5
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C5 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C5 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C4 01 3E 3E 8F F4 3B EB 37 0E C5 02 42 4C 00
-85 12 20 00 AC C5 04 42 41 53 45 00 85 12 DC 21
-C8 C4 05 53 54 41 54 45 85 12 BE 21 96 C5 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 C5 06 55 4D 2F
-4D 4F 44 00 30 12 62 C4 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C4 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C5
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 C5 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 C6
-02 23 53 00 87 12 32 C6 6A C6 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C6 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C5 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C5
-02 44 2E 00 87 12 D2 C5 44 C4 B0 C4 4C C5 64 C6
-BC C4 A2 C6 7E C6 14 C9 DC C8 2A C4 DC C5 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C4
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C6 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 C4
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A C6
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C6 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C6 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C5 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C7 03 4B 45 59 30 40 A0 C7
-18 42 0C 05 2F 83 8F 4E 00 00 B0 12 FC C7 92 B3
-1C 05 FD 27 1E 42 0C 05 B0 12 0E C8 30 4D 00 C7
-06 41 43 43 45 50 54 00 3C 40 6A C8 3B 40 34 C8
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C8 92 B3 1C 05 05 24 18 42 0C 05 38 90
-0A 00 04 20 21 53 39 40 22 C8 4D 15 A2 B3 1C 05
-FD 27 B2 40 11 00 0E 05 E2 C2 22 02 30 41 B2 40
-13 00 0E 05 E2 D2 22 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C8 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 0C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 1C 05 FD 27 82 48 0E 05 30 4D 60 C8
-2D 83 92 B3 1C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C6 04 45 4D 49 54 00 30 40 8C C8 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 C8 04 45 43 48
-4F 00 B2 40 82 48 58 C8 82 43 DE 21 30 4D E0 C6
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C8 92 43
-DE 21 30 4D 9C C6 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C8 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C8 EF 3F 00 C9
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C7 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C9 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C9 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C7 02 43
-52 00 30 40 46 C9 87 12 52 C9 02 0D 0A 00 14 C9
-2A C4 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C8 82 53 22 00 82 43 B4 21
-87 12 34 C4 52 C9 C8 CB 34 C4 22 00 B6 C9 80 C9
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 C8 82 2E
-22 00 87 12 6C C9 34 C4 14 C9 C8 CB 2A C4 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C4
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C4
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C4
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C4 02 3E 52 00 0E 12 3E 4F 30 4D 70 C4 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C4 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C4 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C4
+01 21 BE 4F 00 00 3E 4F 30 4D CC C4 02 30 3D 00
+1E 83 0E 7E 30 4D FC C4 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C5 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 C5 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 C5 02 23 53 00 87 12 88 C5 C0 C5
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C5
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C4 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C5 34 C4 86 C4 D4 C4 BA C5
+92 C4 F8 C5 D4 C5 D6 C7 42 CB 82 C7 2A C4 22 C5
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C5 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C6 18 42 0C 05 2F 83 8F 4E
+00 00 B0 12 B6 C6 92 B3 1C 05 FD 27 1E 42 0C 05
+B0 12 C8 C6 30 4D A2 B3 1C 05 FD 27 B2 40 11 00
+0E 05 E2 C2 22 02 30 41 B2 40 13 00 0E 05 E2 D2
+22 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C6
+B0 12 B6 C6 12 D2 0A 18 F9 3F F0 C4 06 41 43 43
+45 50 54 00 3C 40 64 C7 3B 40 2E C7 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C7
+92 B3 1C 05 05 24 18 42 0C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 0C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 82 48 0E 05 30 4D 5A C7 2D 83 92 B3 1C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C4 04 45 4D 49
+54 00 30 40 86 C7 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C C7 04 45 43 48 4F 00 B2 40 82 48
+52 C7 82 43 DE 21 30 4D 32 C6 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C7 92 43 DE 21 30 4D 20 C6
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C7
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C7 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C5
+02 43 52 00 30 40 08 C8 87 12 1E C8 02 0D 0A 00
+D6 C7 2A C4 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C5 82 53 22 00 82 43 B4 21 87 12 14 C8
+1E C8 B0 CA 14 C8 22 00 80 C8 4C C8 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA C7 82 2E 22 00 87 12 38 C8 14 C8 D6 C7
+B0 CA 2A C4 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,301 +86,281 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C4 34 40 00 C4 30 4D A2 C5 07 3E
+00 00 35 40 0E C4 34 40 00 C4 30 4D 82 C4 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 CB 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 CB 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C5
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C8 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C5 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 CB 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 C4 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C9 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A CC B0 C5
-B6 C9 44 CC 3D 40 4C CC E2 22 5D 3E 4E CC 0A 4E
-3E 4F 3D 40 64 CC 39 27 3D 40 3E CC 1A E2 BE 21
-B3 27 AD 23 66 CC 3E 4F 3D 40 3E CC BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CF
-CD 3F B6 CB 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A C4 3A CC
-A2 CC B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C C5 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 C9 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 C9 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E C5 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E C6 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 C4 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC C6 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 C7 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE CA 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 C8 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 C8 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 CB 42 CB 80 C8 50 CB
+3D 40 58 CB CC 22 82 3E 5A CB 0A 4E 3E 4F 3D 40
+70 CB 23 27 3D 40 4A CB 1A E2 BE 21 A1 27 B5 23
+72 CB 3E 4F 3D 40 4A CB B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 CE CB 3F D2 CA
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A C4 46 CB AE CB B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 C5 04 51 55 49 54 00 82 43 08 18 31 40
 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A C4
-42 C9 92 C8 DC C8 3A CC DE C4 70 C5 52 C9 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CD 34 C4
-30 FF F2 C6 8A C5 52 C9 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CD 24 C7 D0 CC C0 C7 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C CD 86 41 42 4F 52 54
-22 00 87 12 6C C9 34 C4 2E CD C8 CB 2A C4 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D4 B0 12
-FC C7 92 C3 1C 05 38 40 A0 AA 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 1C 05 F2 23 87 12
-6A D4 34 C4 DE 21 F2 C4 B2 C8 52 C9 04 1B 5B 37
-6D 00 14 C9 54 C4 28 C7 8A CD 42 C9 52 C9 05 6C
-69 6E 65 3A 14 C9 40 C5 D2 C6 14 C9 52 C9 04 1B
-5B 30 6D 00 14 C9 12 CD 00 00 83 5B 27 5D 87 12
-B0 CD 34 C4 34 C4 C8 CB C8 CB 2A C4 08 CA 01 27
-87 12 B0 C5 B6 C9 0E CA 28 C7 BE CD 2A C4 6E CC
-CE C5 81 5C 92 42 C0 21 C4 21 30 4D 9A CD 81 5B
-82 43 BE 21 30 4D C2 CD 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C7 82 49 53 00 87 12
-C8 C5 F2 C4 28 C7 02 CE 9E CD 34 C4 E0 CD C8 CB
-2A C4 B0 CD E0 CD 2A C4 EA CD 09 49 4D 4D 45 44
+04 C8 8C C7 42 CB 82 C7 46 CB A4 C4 0C C5 1E C8
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 CC
+14 C8 30 FF A0 CA 26 C5 1E C8 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 CC 3C C6 E0 CB C2 CA 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E CC 86 41 42 4F
+52 54 22 00 87 12 38 C8 14 C8 40 CC B0 CA 2A C4
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 D1
+B0 12 B6 C6 92 C3 1C 05 38 40 A0 AA 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 1C 05 F3 23 87 12
+42 D1 14 C8 DE 21 EA C4 AC C7 1E C8 04 1B 5B 37
+6D 00 D6 C7 58 C4 40 C6 9A CC 04 C8 1E C8 05 6C
+69 6E 65 3A D6 C7 D0 C4 24 C6 D6 C7 1E C8 04 1B
+5B 30 6D 00 D6 C7 24 CC 00 00 83 5B 27 5D 87 12
+C0 CC 14 C8 14 C8 B0 CA B0 CA 2A C4 E8 C8 01 27
+87 12 42 CB 80 C8 EE C8 40 C6 CE CC 2A C4 7A CB
+32 C5 81 5C 92 42 C0 21 C4 21 30 4D AA CC 81 5B
+82 43 BE 21 30 4D D2 CC 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A CA 82 49 53 00 87 12
+BE CB EA C4 40 C6 12 CD AE CC 14 C8 F0 CC B0 CA
+2A C4 C0 CC F0 CC 2A C4 FA CC 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 C9 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 CC 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C5 B6 C9 0E CA 54 C4
-28 C7 BE CD 70 C5 28 C7 66 CE 34 C4 34 C4 C8 CB
-C8 CB 34 C4 C8 CB C8 CB 2A C4 CE CD 81 3B 82 93
-BE 21 A8 27 87 12 34 C4 2A C4 C8 CB 04 CF D0 CD
-2A C4 6C CE 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CE BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 CE 01 3A 30 12 A4 CE
-87 12 92 C9 B0 C5 B6 C9 CA CE 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CE 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C9
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CD B0 C9 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CE BA 40 86 12 FC FF E4 3F 16 CC 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CE BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CF 06 43 52 45 41 54
-45 00 B0 12 C0 CE BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CC 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CF 05 44
-45 46 45 52 30 12 12 CF 8B 3F 6E CA 05 3E 42 4F
-44 59 2E 52 30 4D 6A CF 04 43 4F 44 45 00 B0 12
-C0 CE 2A 82 82 4A C6 21 87 12 B2 CE 94 D2 66 D2
-2A C4 B8 CF 07 43 4F 44 45 4E 4E 4D 87 12 8C CE
-D0 CD C2 CF 2A C4 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D2 04 CF 2A C4 1A CD 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A D2 DA 21 D9 3F E8 CF 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE D2 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A C4 02 00 A2 52 C6 21 ED 3F 0A CE 85 48 49 32
-4C 4F 87 12 F2 C6 8C D0 C8 CB D0 CD 94 D2 66 D2
-2A C4 5C D0 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 C7 00 00 2E 53 30 4D
-9E CF 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 C7 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C9 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 CF 85 42 45 47 49 4E 30 40 F2 C6 B2 D0
-85 55 4E 54 49 4C 39 40 28 C7 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CF
-85 41 47 41 49 4E 39 40 24 C7 EF 3F 34 CF 85 57
-48 49 4C 45 87 12 78 D0 78 C4 2A C4 22 CE 86 52
-45 50 45 41 54 00 87 12 F6 D0 B8 D0 2A C4 92 D0
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C C7 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA CB 84 4C 4F 4F 50 00 39 40
-5E C7 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C7 85 2B 4C 4F
-4F 50 39 40 4C C7 E5 3F 48 D1 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E C7 00 00 BA 40 24 C7 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A D1 04 4D 4F 56 45 00 0A 4E
+C4 CB 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 CB
+80 C8 EE C8 58 C4 40 C6 CE CC 0C C5 40 C6 5C CD
+14 C8 14 C8 B0 CA B0 CA 14 C8 B0 CA B0 CA 2A C4
+DE CC 81 3B 82 93 BE 21 B5 27 87 12 14 C8 2A C4
+B0 CA FA CD E0 CC 2A C4 62 CD 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 CD 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A CD 01 3A 30 12 A0 CD 92 B3 C6 21 A2 63 C6 21
+87 12 42 CB 80 C8 C8 CD 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E C8 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C CC 90 CB 05 44 45 46 45 52
+B0 12 B8 CD BA 40 30 40 FC FF BA 40 AE CD FE FF
+E3 3F 1E CB 06 43 52 45 41 54 45 00 B0 12 B8 CD
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A CE 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E C9 05 3E 42 4F 44 59 2E 52
+30 4D 44 CE 04 43 4F 44 45 00 B0 12 B8 CD A2 82
+C6 21 87 12 D2 D0 AC D0 2A C4 84 CE 07 43 4F 44
+45 4E 4E 4D B0 12 86 CD F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 D0 FA CD 2A C4 2C CC 03 41
+53 4D B2 40 B0 D0 DA 21 E0 3F AC CE 06 45 4E 44
+41 53 4D 00 87 12 B4 CE F4 D0 2A C4 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 D0 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A C4
+02 00 A2 52 C6 21 ED 3F 1A CD 85 48 49 32 4C 4F
+87 12 A0 CA 4A CF B0 CA E0 CC D2 D0 AC D0 2A C4
+1A CF 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 C6 00 00 2E 53 30 4D 5E CE
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C C6 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 C7
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C CE 85 42 45 47 49 4E 30 40 A0 CA 70 CF 85 55
+4E 54 49 4C 39 40 40 C6 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE CE 85 41
+47 41 49 4E 39 40 3C C6 EF 3F 7A C8 85 57 48 49
+4C 45 87 12 36 CF 76 C4 2A C4 34 C8 86 52 45 50
+45 41 54 00 87 12 B4 CF 76 CF 2A C4 50 CF 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 C6 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 CA 84 4C 4F 4F 50 00 39 40 76 C6
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 C6 85 2B 4C 4F 4F 50
+39 40 64 C6 E5 3F 06 D0 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE D0
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CF
-34 C4 10 00 34 C4 00 00 3C C7 34 C4 00 00 C8 CB
-5E C7 0A D2 F2 C6 34 C4 C8 21 44 C4 F2 C4 C8 CB
-FA C4 8A CF 34 C4 CA 21 FA C4 2A C4 AE CD 05 46
-4F 52 54 48 84 12 24 D2 8E D2 C4 D5 CC D2 2E D2
-74 D0 7C D1 F8 D3 BE D2 8E D4 A8 D4 D0 D0 34 D5
-00 00 CC D3 D8 CD AC CF 00 00 F0 D0 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D2 AE DB 16 DC 62 DB
-80 DC 28 DB A4 DC 54 D8 00 00 1E DB CE DB 80 DB
-BE DB 64 D9 00 00 00 00 B2 DC 58 D2 5C D2 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C CE 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E C9 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 D1 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 D0 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CE 86 5B 54 48 45 4E 5D 00 30 4D 14 D3
-86 5B 45 4C 53 45 5D 00 87 12 34 C4 00 00 36 C5
-B0 C5 B6 C9 1C CC 44 C4 28 C7 8E D3 8A C4 8A C4
-52 C9 06 5B 54 48 45 4E 5D 00 EA D2 32 C7 5C D3
-36 C9 40 C5 54 C4 32 C7 30 D3 2A C4 8A C4 8A C4
-52 C9 06 5B 45 4C 53 45 5D 00 EA D2 32 C7 7C D3
-36 C9 40 C5 54 C4 32 C7 2E D3 2A C4 52 C9 04 5B
-49 46 5D 00 EA D2 32 C7 30 D3 24 C7 2E D3 36 C9
-52 C9 05 0D 0A 6B 6F 20 14 C9 92 C8 2A CC 24 C7
-30 D3 20 D3 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D3 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C5 B6 C9 0E CA 6C C4 2A C4 B4 D3 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C5 B6 C9 0E CA
-6C C4 64 C5 2A C4 E8 D3 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 D1 06 4D 41 52 4B 45 52 00
-B0 12 C0 CE BA 40 84 12 FC FF BA 40 E6 D3 FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A CF 34 D2 C4 D2 D8 D2 2C D4 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D2
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D4 8A D2
-C4 DC 0E D1 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D4 92 42 0C 18 70 D4 EF 3F 60 D4 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E D4 92 42
-C6 21 70 D4 30 4D 74 D4 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 D1 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C8 24 C8 B2 40 3E D5 3C D5
-B2 40 8A D2 0E 18 B2 40 C4 DC 0C 18 30 12 7E D4
-B2 40 8C C8 8A C8 B2 40 46 C9 44 C9 B2 40 A0 C7
-9E C7 B2 40 18 00 0A 18 37 40 1A C4 36 40 BC C4
-35 40 0E C4 34 40 00 C4 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 D4 04 57 41 52 4D 00 30 40 3E D5 3D 40
-74 D5 92 C3 30 01 1E 42 08 18 0E 93 12 24 F2 B0
-10 00 00 02 02 20 3E E3 1E 53 F2 D0 30 00 0A 02
-3E 90 0A 00 B1 27 3E 90 16 00 AE 2F 2E 93 7D 27
-86 2F 30 4D 52 C9 06 0D 1B 5B 37 6D 23 00 14 C9
-E2 C6 52 C9 1F 46 61 73 74 46 6F 72 74 68 20 56
-33 30 30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72
-65 6E 73 20 14 C9 34 C4 80 FF F2 C6 28 C5 D2 C6
-52 C9 0B 62 79 74 65 73 20 66 72 65 65 20 24 C7
-8A CD E2 D2 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
-B2 40 04 A5 20 01 B2 40 88 5A CC 01 B2 43 02 02
-B2 D3 06 02 D2 43 24 02 F2 D3 26 02 F2 40 FD 00
-22 02 E2 D2 24 02 F2 40 A5 00 A1 01 F2 40 10 00
-A0 01 D2 43 A1 01 B2 40 00 A5 60 01 B2 40 29 01
-80 01 B2 40 0B 00 82 01 B2 40 E9 01 84 01 39 40
-00 01 B2 D0 10 00 86 01 92 D2 5E 01 08 18 38 40
-59 14 18 83 FE 23 19 83 FA 23 39 40 00 10 29 83
-89 43 00 20 FC 23 39 40 26 00 29 83 B9 40 D6 D5
-DA FF FB 23 B2 40 2C C8 E4 FF B2 40 81 00 00 05
-92 42 02 18 06 05 92 42 04 18 08 05 92 C3 00 05
-92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12 3A D5
-40 3F 38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21
-09 9A 03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A
-C4 21 30 4D 1C 15 B0 12 2A C4 B6 C9 0E CA 32 C7
-BA D6 CA CA 28 C7 BE CD DC D6 BC D6 29 4E 39 90
-86 12 02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E
-02 00 04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41
-3E 40 28 00 B0 12 A4 D6 19 42 C6 21 A2 53 C6 21
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 C8
+CA 21 F2 C4 2A C4 84 12 7E D0 AE CF 4C D3 DE CF
+BE CC 32 CF 3A D0 60 D4 64 C8 66 D1 80 D1 8E CF
+00 D2 00 00 32 D4 E8 CC 78 CE 00 00 84 12 7E D0
+7E D9 E0 D9 32 D9 54 DA F8 D8 00 00 28 D6 00 00
+EE D8 9E D9 50 D9 8E D9 38 D7 00 00 00 00 30 DA
+AA D0 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 D0 EE D0
+F4 D0 04 D1 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 CD 09 50 57 52 5F 53 54 41
+54 45 84 12 FC D0 D0 D0 66 DA CC CF 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 D1 92 42 0C 18
+48 D1 EF 3F 38 D1 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 D1 92 42 C6 21 48 D1 30 4D 4C D1
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC CF 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 C6
+DE C6 B2 40 0A D2 08 D2 B2 40 D0 D0 0E 18 B2 40
+66 DA 0C 18 30 12 56 D1 B2 40 86 C7 84 C7 B2 40
+08 C8 06 C8 B2 40 98 C6 96 C6 B2 40 18 00 0A 18
+37 40 1A C4 36 40 92 C4 35 40 0E C4 34 40 00 C4
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A D1
+04 57 41 52 4D 00 30 40 0A D2 3D 40 40 D2 92 C3
+30 01 1E 42 08 18 0E 93 12 24 F2 B0 10 00 00 02
+02 20 3E E3 1E 53 F2 D0 30 00 0A 02 3E 90 0A 00
+B7 27 3E 90 16 00 B4 2F 2E 93 83 27 8C 2F 30 4D
+1E C8 06 0D 1B 5B 37 6D 23 00 D6 C7 34 C6 1E C8
+19 46 61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D
+2E 54 68 6F 6F 72 65 6E 73 20 D6 C7 14 C8 30 FF
+A0 CA B8 C4 24 C6 1E C8 0A 62 79 74 65 73 20 66
+72 65 65 00 3C C6 9A CC 82 CF 04 43 4F 4C 44 00
+92 B3 0A 05 FD 23 B2 40 04 A5 20 01 40 D2 B2 40
+88 5A CC 01 B2 43 02 02 B2 D3 06 02 D2 43 24 02
+F2 D3 26 02 F2 40 FD 00 22 02 E2 D2 24 02 F2 40
+A5 00 A1 01 F2 40 10 00 A0 01 D2 43 A1 01 B2 40
+00 A5 60 01 B2 40 29 01 80 01 B2 40 0B 00 82 01
+B2 40 E9 01 84 01 39 40 00 01 B2 D0 10 00 86 01
+92 D2 5E 01 08 18 38 40 59 14 18 83 FE 23 19 83
+FA 23 39 40 00 10 29 83 89 43 00 20 FC 23 39 40
+26 00 29 83 B9 40 9E D2 DA FF FB 23 B2 40 26 C7
+E4 FF B2 40 81 00 00 05 92 42 02 18 06 05 92 42
+04 18 08 05 92 C3 00 05 92 D3 1A 05 3F 40 80 20
+31 40 E0 20 30 12 06 D2 48 3F 8A D2 07 43 4F 4D
+50 41 52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
+0C 24 1B 83 07 30 1C 83 07 30 19 53 F9 98 FF FF
+F5 27 02 2C 3E 43 30 4D 1E 43 30 4D B2 CD 86 5B
+54 48 45 4E 5D 00 30 4D 7E D3 86 5B 45 4C 53 45
+5D 00 87 12 14 C8 00 00 C6 C4 42 CB 80 C8 24 CB
+34 C4 40 C6 F4 D3 44 C4 1E C8 06 5B 54 48 45 4E
+5D 00 54 D3 4A C6 C4 D3 F8 C7 D0 C4 58 C4 4A C6
+9A D3 2A C4 44 C4 1E C8 06 5B 45 4C 53 45 5D 00
+54 D3 4A C6 E2 D3 F8 C7 D0 C4 58 C4 4A C6 98 D3
+2A C4 1E C8 04 5B 49 46 5D 00 54 D3 4A C6 9A D3
+3C C6 98 D3 F8 C7 1E C8 05 0D 0A 6B 6F 20 D6 C7
+8C C7 32 CB 3C C6 9A D3 8A D3 84 5B 49 46 5D 00
+0E 93 3E 4F BE 27 30 4D 0A D4 89 5B 44 45 46 49
+4E 45 44 5D 87 12 42 CB 80 C8 EE C8 6A C4 2A C4
+1A D4 8B 5B 55 4E 44 45 46 49 4E 45 44 5D 87 12
+42 CB 80 C8 EE C8 6A C4 00 C5 2A C4 4E D4 3D 41
+B2 4E 0E 18 A2 4E 0C 18 3E 4F 30 40 56 D1 48 D0
+06 4D 41 52 4B 45 52 00 B0 12 B8 CD BA 40 84 12
+FC FF BA 40 4C D4 FE FF 9A 42 C8 21 00 00 28 83
+8A 48 02 00 A2 52 C6 21 30 40 00 CE 1C 15 B0 12
+2A C4 80 C8 EE C8 4A C6 A2 D4 AA C9 40 C6 CE CC
+BC D4 A4 D4 39 4E 39 80 86 12 08 24 19 53 02 20
+2E 4E 04 3C 2E 53 19 53 01 24 2E 82 1B 17 30 41
+3E 40 28 00 B0 12 8C D4 19 42 C6 21 A2 53 C6 21
 89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53
-C4 21 B0 12 2A C4 B6 C9 CA CA 28 C7 1A D7 10 D7
-21 53 3E 90 10 00 83 2D E1 2B 1C D7 B2 41 C4 21
-DD 3F 87 12 B0 C5 82 D6 2A D7 0C 43 1B 42 C6 21
-A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53
-C4 21 B0 12 A4 D6 0E 93 03 20 3C 40 00 03 21 3C
-1E 93 03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40
-20 03 17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92
-03 20 3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03
-08 3C 3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40
-10 02 92 53 C4 21 B0 12 A4 D6 ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 21 B0 12 F8 D6 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 F8 D6 92 92 C0 21
-C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12
-F8 D6 FA 23 3C 50 10 00 B0 12 E0 D6 EF 3F 0C 43
-1B 42 C6 21 A2 53 C6 21 87 12 B0 C5 82 D6 00 D8
-FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
-C8 3F B0 12 F8 D6 E1 23 3C 50 80 00 B0 12 E0 D6
-DC 3F 1C C8 04 52 45 54 49 00 87 12 34 C4 00 13
-C8 CB 2A C4 34 C4 2C 00 22 D7 F8 D7 3E D8 2E 4E
-0E DC 09 4B A4 3F 3E D0 03 4D 4F 56 84 12 34 D8
-00 40 48 D8 05 4D 4F 56 2E 42 84 12 34 D8 40 40
-00 00 03 41 44 44 84 12 34 D8 00 50 62 D8 05 41
-44 44 2E 42 84 12 34 D8 40 50 6E D8 04 41 44 44
-43 00 84 12 34 D8 00 60 7C D8 06 41 44 44 43 2E
-42 00 84 12 34 D8 40 60 24 D8 04 53 55 42 43 00
-84 12 34 D8 00 70 9A D8 06 53 55 42 43 2E 42 00
-84 12 34 D8 40 70 A8 D8 03 53 55 42 84 12 34 D8
-00 80 B8 D8 05 53 55 42 2E 42 84 12 34 D8 40 80
-20 D0 03 43 4D 50 84 12 34 D8 00 90 D2 D8 05 43
-4D 50 2E 42 84 12 34 D8 40 90 0E D0 04 44 41 44
-44 00 84 12 34 D8 00 A0 EC D8 06 44 41 44 44 2E
-42 00 84 12 34 D8 40 A0 DE D8 03 42 49 54 84 12
-34 D8 00 B0 0A D9 05 42 49 54 2E 42 84 12 34 D8
-40 B0 16 D9 03 42 49 43 84 12 34 D8 00 C0 24 D9
-05 42 49 43 2E 42 84 12 34 D8 40 C0 30 D9 03 42
-49 53 84 12 34 D8 00 D0 3E D9 05 42 49 53 2E 42
-84 12 34 D8 40 D0 00 00 03 58 4F 52 84 12 34 D8
-00 E0 58 D9 05 58 4F 52 2E 42 84 12 34 D8 40 E0
-8A D8 03 41 4E 44 84 12 34 D8 00 F0 72 D9 05 41
-4E 44 2E 42 84 12 34 D8 40 F0 B0 C5 22 D7 90 D9
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-C4 D8 03 52 52 43 84 12 8A D9 00 10 A2 D9 05 52
-52 43 2E 42 84 12 8A D9 40 10 AE D9 04 53 57 50
-42 00 84 12 8A D9 80 10 BC D9 03 52 52 41 84 12
-8A D9 00 11 CA D9 05 52 52 41 2E 42 84 12 8A D9
-40 11 D6 D9 03 53 58 54 84 12 8A D9 80 11 00 00
-04 50 55 53 48 00 84 12 8A D9 00 12 F0 D9 06 50
-55 53 48 2E 42 00 84 12 8A D9 40 12 4A D9 04 43
-41 4C 4C 00 84 12 8A D9 80 12 1A 53 0E 4A 87 12
-E2 C6 52 C9 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 3A CD B0 C5 82 D6 3A DA 92 53 C4 21 3E 40
-2C 00 B0 12 2A C4 B6 C9 CA CA 28 C7 BE CD EE D7
-52 DA 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F
-5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F E4 D9
-04 52 52 43 4D 00 84 12 34 DA 50 00 80 DA 04 52
-52 41 4D 00 84 12 34 DA 50 01 8E DA 04 52 4C 41
-4D 00 84 12 34 DA 50 02 9C DA 04 52 52 55 4D 00
-84 12 34 DA 50 03 FE D9 05 50 55 53 48 4D 84 12
-34 DA 00 15 B8 DA 04 50 4F 50 4D 00 84 12 34 DA
-00 17 85 12 00 3C AA DA 03 53 3E 3D 85 12 00 38
-D8 DA 02 53 3C 00 85 12 00 34 C6 DA 03 30 3E 3D
-85 12 00 30 EC DA 02 30 3C 00 85 12 00 30 00 00
-02 55 3C 00 85 12 00 2C 00 DB 03 55 3E 3D 85 12
-00 28 F6 DA 03 30 3C 3E 85 12 00 24 14 DB 02 30
+C4 21 B0 12 2A C4 80 C8 AA C9 40 C6 FA D4 F0 D4
+21 53 3E 90 10 00 7D 2D E1 2B FC D4 B2 41 C4 21
+DD 3F 87 12 42 CB 74 C8 0A D5 0C 43 1B 42 C6 21
+A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 27 20 92 53
+C4 21 B0 12 8C D4 3C 40 00 03 0E 93 1C 24 3C 40
+10 03 1E 93 18 24 3C 40 20 03 2E 93 14 24 3C 40
+20 02 2E 92 10 24 3C 40 30 02 3E 92 0C 24 3C 40
+30 03 3E 93 08 24 3C 40 30 00 19 42 C6 21 A2 53
+C6 21 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00
+07 20 3C 40 10 02 92 53 C4 21 B0 12 8C D4 ED 3F
+7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12
+D8 D4 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 D8 D4
+92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E
+DA 3F B0 12 D8 D4 FA 23 3C 50 10 00 B0 12 C0 D4
+EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 87 12 42 CB
+74 C8 D4 D5 FE 90 26 00 00 00 3E 40 20 00 03 20
+3C 50 82 00 C8 3F B0 12 D8 D4 E1 23 3C 50 80 00
+B0 12 C0 D4 DC 3F D6 C6 04 52 45 54 49 00 87 12
+14 C8 00 13 B0 CA 2A C4 14 C8 2C 00 02 D5 CC D5
+12 D6 09 4B 2E 4E 0E DC A4 3F FC CE 03 4D 4F 56
+84 12 08 D6 00 40 1C D6 05 4D 4F 56 2E 42 84 12
+08 D6 40 40 00 00 03 41 44 44 84 12 08 D6 00 50
+36 D6 05 41 44 44 2E 42 84 12 08 D6 40 50 42 D6
+04 41 44 44 43 00 84 12 08 D6 00 60 50 D6 06 41
+44 44 43 2E 42 00 84 12 08 D6 40 60 F8 D5 04 53
+55 42 43 00 84 12 08 D6 00 70 6E D6 06 53 55 42
+43 2E 42 00 84 12 08 D6 40 70 7C D6 03 53 55 42
+84 12 08 D6 00 80 8C D6 05 53 55 42 2E 42 84 12
+08 D6 40 80 DE CE 03 43 4D 50 84 12 08 D6 00 90
+A6 D6 05 43 4D 50 2E 42 84 12 08 D6 40 90 CC CE
+04 44 41 44 44 00 84 12 08 D6 00 A0 C0 D6 06 44
+41 44 44 2E 42 00 84 12 08 D6 40 A0 B2 D6 03 42
+49 54 84 12 08 D6 00 B0 DE D6 05 42 49 54 2E 42
+84 12 08 D6 40 B0 EA D6 03 42 49 43 84 12 08 D6
+00 C0 F8 D6 05 42 49 43 2E 42 84 12 08 D6 40 C0
+04 D7 03 42 49 53 84 12 08 D6 00 D0 12 D7 05 42
+49 53 2E 42 84 12 08 D6 40 D0 00 00 03 58 4F 52
+84 12 08 D6 00 E0 2C D7 05 58 4F 52 2E 42 84 12
+08 D6 40 E0 5E D6 03 41 4E 44 84 12 08 D6 00 F0
+46 D7 05 41 4E 44 2E 42 84 12 08 D6 40 F0 42 CB
+02 D5 64 D7 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
+0C DA 4F 3F 98 D6 03 52 52 43 84 12 5E D7 00 10
+76 D7 05 52 52 43 2E 42 84 12 5E D7 40 10 82 D7
+04 53 57 50 42 00 84 12 5E D7 80 10 90 D7 03 52
+52 41 84 12 5E D7 00 11 9E D7 05 52 52 41 2E 42
+84 12 5E D7 40 11 AA D7 03 53 58 54 84 12 5E D7
+80 11 00 00 04 50 55 53 48 00 84 12 5E D7 00 12
+C4 D7 06 50 55 53 48 2E 42 00 84 12 5E D7 40 12
+1E D7 04 43 41 4C 4C 00 84 12 5E D7 80 12 1A 53
+0E 4A 87 12 34 C6 1E C8 0D 6F 75 74 20 6F 66 20
+62 6F 75 6E 64 73 4C CC 42 CB 74 C8 0E D8 92 53
+C4 21 3E 40 2C 00 B0 12 2A C4 80 C8 AA C9 40 C6
+CE CC C2 D5 26 D8 0A 4E 3E 4F 1A 83 E0 33 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06
+8F 3F B8 D7 04 52 52 43 4D 00 84 12 08 D8 50 00
+54 D8 04 52 52 41 4D 00 84 12 08 D8 50 01 62 D8
+04 52 4C 41 4D 00 84 12 08 D8 50 02 70 D8 04 52
+52 55 4D 00 84 12 08 D8 50 03 D2 D7 05 50 55 53
+48 4D 84 12 08 D8 00 15 8C D8 04 50 4F 50 4D 00
+84 12 08 D8 00 17 7E D8 03 53 3E 3D 85 12 00 38
+A8 D8 02 53 3C 00 85 12 00 34 9A D8 03 30 3E 3D
+85 12 00 30 BC D8 02 30 3C 00 85 12 00 30 00 00
+02 55 3C 00 85 12 00 2C D0 D8 03 55 3E 3D 85 12
+00 28 C6 D8 03 30 3C 3E 85 12 00 24 E4 D8 02 30
 3D 00 85 12 00 20 00 00 02 49 46 00 1A 42 C6 21
-8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D 0A DB 04 54
+8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D DA D8 04 54
 48 45 4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53
-0A 89 0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D
-FA D8 04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C
-00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 3E DB
+0A 89 0A 11 3A 90 00 02 63 2F 88 DA 00 00 30 4D
+CE D6 04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C
+00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 0E D9
 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21
-2A 83 0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 21 30 4D 7E D9 05 41
-47 41 49 4E 87 12 D2 DA 86 DB 2A C4 00 00 05 57
-48 49 4C 45 87 12 2C DB 78 C4 2A C4 E2 DA 06 52
-45 50 45 41 54 00 87 12 D2 DA 86 DB 44 DB 2A C4
-E2 DB 3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43
-00 00 CA 23 98 42 C6 21 00 00 30 4D 0E DA 03 42
-57 31 84 12 E0 DB E0 21 FE DB 03 42 57 32 84 12
-E0 DB E2 21 0A DC 03 42 57 33 84 12 E0 DB E4 21
-22 DC 3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43
-00 00 8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 84 12 20 DC E6 21
-46 DC 03 46 57 32 84 12 20 DC E8 21 52 DC 03 46
-57 33 84 12 20 DC EA 21 3E 90 00 30 07 24 3E E0
-00 04 3E B0 00 10 02 24 3E E0 00 08 30 4D 5E DC
-04 47 4F 54 4F 00 87 12 D2 DA B0 CD BE CB 2A C4
-00 00 05 3F 47 4F 54 4F 87 12 68 DC B0 CD BE CB
-2A C4 00 00 03 4A 4D 50 87 12 B0 CD B4 DB 2A C4
-92 DC 04 3F 4A 4D 50 00 87 12 68 DC B0 CD 78 C4
-86 DB 2A C4
+2A 83 0A 89 0A 11 3A 90 00 FE 42 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C6 21 30 4D 52 D7 05 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57
+48 49 4C 45 87 12 FC D8 76 C4 2A C4 B2 D8 06 52
+45 50 45 41 54 00 87 12 84 D9 14 D9 2A C4 B0 D9
+3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CD 2F 98 42
+C6 21 00 00 30 4D E2 D7 03 42 57 31 84 12 AE D9
+00 00 C8 D9 03 42 57 32 84 12 AE D9 00 00 D4 D9
+03 42 57 33 84 12 AE D9 00 00 EC D9 3D 41 1A 42
+C6 21 28 4E B2 92 C4 21 90 2B BA 4F 00 00 A2 53
+C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
+84 12 EA D9 00 00 0C DA 03 46 57 32 84 12 EA D9
+00 00 18 DA 03 46 57 33 84 12 EA D9 00 00 00 00
+05 3F 47 4F 54 4F 3E 90 00 30 07 24 3E E0 00 04
+3E B0 00 10 02 24 3E E0 00 08 87 12 C0 CC DA CA
+2A C4 24 DA 04 47 4F 54 4F 00 2F 83 8F 4E 00 00
+3E 40 00 3C F2 3F
 @FFFE
-D6 D5
+9E D2
 q
index fb1d166..0d177e0 100644 (file)
 @1800
-10 00 08 00 00 D6 E8 03 05 00 18 00 B2 DC 8A D2
-2C 01 7B 30 FC C7 0E C8
+10 00 08 00 00 D6 E8 03 05 00 18 00 54 DA D0 D0
+2D 01 6B 30 B6 C6 C8 C6
 @C400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C4
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C4 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C4 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C4 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C4 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C4 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C4 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C4 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C4 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C5 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C4 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C5 02 31 2D 00
-1E 83 30 4D D8 C4 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C5
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C5 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C5 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C4 01 3E 3E 8F F4 3B EB 37 0E C5 02 42 4C 00
-85 12 20 00 AC C5 04 42 41 53 45 00 85 12 DC 21
-C8 C4 05 53 54 41 54 45 85 12 BE 21 96 C5 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 C5 06 55 4D 2F
-4D 4F 44 00 30 12 62 C4 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C4 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C5
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 C5 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 C6
-02 23 53 00 87 12 32 C6 6A C6 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C6 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C5 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C5
-02 44 2E 00 87 12 D2 C5 44 C4 B0 C4 4C C5 64 C6
-BC C4 A2 C6 7E C6 14 C9 DC C8 2A C4 DC C5 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C4
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C6 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 C4
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A C6
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C6 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C6 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C5 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C7 03 4B 45 59 30 40 A0 C7
-18 42 0C 05 2F 83 8F 4E 00 00 B0 12 FC C7 92 B3
-1C 05 FD 27 1E 42 0C 05 B0 12 0E C8 30 4D 00 C7
-06 41 43 43 45 50 54 00 3C 40 6A C8 3B 40 34 C8
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C8 92 B3 1C 05 05 24 18 42 0C 05 38 90
-0A 00 04 20 21 53 39 40 22 C8 4D 15 A2 B3 1C 05
-FD 27 B2 40 11 00 0E 05 E2 C2 22 02 30 41 B2 40
-13 00 0E 05 E2 D2 22 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C8 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 0C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 1C 05 FD 27 82 48 0E 05 30 4D 60 C8
-2D 83 92 B3 1C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C6 04 45 4D 49 54 00 30 40 8C C8 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 C8 04 45 43 48
-4F 00 B2 40 82 48 58 C8 82 43 DE 21 30 4D E0 C6
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C8 92 43
-DE 21 30 4D 9C C6 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C8 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C8 EF 3F 00 C9
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C7 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C9 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C9 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C7 02 43
-52 00 30 40 46 C9 87 12 52 C9 02 0D 0A 00 14 C9
-2A C4 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C8 82 53 22 00 82 43 B4 21
-87 12 34 C4 52 C9 C8 CB 34 C4 22 00 B6 C9 80 C9
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 C8 82 2E
-22 00 87 12 6C C9 34 C4 14 C9 C8 CB 2A C4 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C4
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C4
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C4
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C4 02 3E 52 00 0E 12 3E 4F 30 4D 70 C4 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C4 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C4 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C4
+01 21 BE 4F 00 00 3E 4F 30 4D CC C4 02 30 3D 00
+1E 83 0E 7E 30 4D FC C4 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C5 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 C5 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 C5 02 23 53 00 87 12 88 C5 C0 C5
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C5
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C4 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C5 34 C4 86 C4 D4 C4 BA C5
+92 C4 F8 C5 D4 C5 D6 C7 42 CB 82 C7 2A C4 22 C5
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C5 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C6 18 42 0C 05 2F 83 8F 4E
+00 00 B0 12 B6 C6 92 B3 1C 05 FD 27 1E 42 0C 05
+B0 12 C8 C6 30 4D A2 B3 1C 05 FD 27 B2 40 11 00
+0E 05 E2 C2 22 02 30 41 B2 40 13 00 0E 05 E2 D2
+22 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C6
+B0 12 B6 C6 12 D2 0A 18 F9 3F F0 C4 06 41 43 43
+45 50 54 00 3C 40 64 C7 3B 40 2E C7 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C7
+92 B3 1C 05 05 24 18 42 0C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 0C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 82 48 0E 05 30 4D 5A C7 2D 83 92 B3 1C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C4 04 45 4D 49
+54 00 30 40 86 C7 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C C7 04 45 43 48 4F 00 B2 40 82 48
+52 C7 82 43 DE 21 30 4D 32 C6 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C7 92 43 DE 21 30 4D 20 C6
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C7
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C7 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C5
+02 43 52 00 30 40 08 C8 87 12 1E C8 02 0D 0A 00
+D6 C7 2A C4 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C5 82 53 22 00 82 43 B4 21 87 12 14 C8
+1E C8 B0 CA 14 C8 22 00 80 C8 4C C8 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA C7 82 2E 22 00 87 12 38 C8 14 C8 D6 C7
+B0 CA 2A C4 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,300 +86,280 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C4 34 40 00 C4 30 4D A2 C5 07 3E
+00 00 35 40 0E C4 34 40 00 C4 30 4D 82 C4 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 CB 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 CB 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C5
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C8 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C5 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 CB 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 C4 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C9 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A CC B0 C5
-B6 C9 44 CC 3D 40 4C CC E2 22 5D 3E 4E CC 0A 4E
-3E 4F 3D 40 64 CC 39 27 3D 40 3E CC 1A E2 BE 21
-B3 27 AD 23 66 CC 3E 4F 3D 40 3E CC BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CF
-CD 3F B6 CB 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A C4 3A CC
-A2 CC B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C C5 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 C9 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 C9 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E C5 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E C6 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 C4 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC C6 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 C7 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE CA 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 C8 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 C8 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 CB 42 CB 80 C8 50 CB
+3D 40 58 CB CC 22 82 3E 5A CB 0A 4E 3E 4F 3D 40
+70 CB 23 27 3D 40 4A CB 1A E2 BE 21 A1 27 B5 23
+72 CB 3E 4F 3D 40 4A CB B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 CE CB 3F D2 CA
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A C4 46 CB AE CB B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 C5 04 51 55 49 54 00 82 43 08 18 31 40
 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A C4
-42 C9 92 C8 DC C8 3A CC DE C4 70 C5 52 C9 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CD 34 C4
-30 FF F2 C6 8A C5 52 C9 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CD 24 C7 D0 CC C0 C7 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C CD 86 41 42 4F 52 54
-22 00 87 12 6C C9 34 C4 2E CD C8 CB 2A C4 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D4 B0 12
-FC C7 92 C3 1C 05 38 40 AA 0A 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 1C 05 F2 23 87 12
-6A D4 34 C4 DE 21 F2 C4 B2 C8 52 C9 04 1B 5B 37
-6D 00 14 C9 54 C4 28 C7 8A CD 42 C9 52 C9 05 6C
-69 6E 65 3A 14 C9 40 C5 D2 C6 14 C9 52 C9 04 1B
-5B 30 6D 00 14 C9 12 CD 00 00 83 5B 27 5D 87 12
-B0 CD 34 C4 34 C4 C8 CB C8 CB 2A C4 08 CA 01 27
-87 12 B0 C5 B6 C9 0E CA 28 C7 BE CD 2A C4 6E CC
-CE C5 81 5C 92 42 C0 21 C4 21 30 4D 9A CD 81 5B
-82 43 BE 21 30 4D C2 CD 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C7 82 49 53 00 87 12
-C8 C5 F2 C4 28 C7 02 CE 9E CD 34 C4 E0 CD C8 CB
-2A C4 B0 CD E0 CD 2A C4 EA CD 09 49 4D 4D 45 44
+04 C8 8C C7 42 CB 82 C7 46 CB A4 C4 0C C5 1E C8
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 CC
+14 C8 30 FF A0 CA 26 C5 1E C8 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 CC 3C C6 E0 CB C2 CA 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E CC 86 41 42 4F
+52 54 22 00 87 12 38 C8 14 C8 40 CC B0 CA 2A C4
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 D1
+B0 12 B6 C6 92 C3 1C 05 38 40 AA 0A 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 1C 05 F3 23 87 12
+42 D1 14 C8 DE 21 EA C4 AC C7 1E C8 04 1B 5B 37
+6D 00 D6 C7 58 C4 40 C6 9A CC 04 C8 1E C8 05 6C
+69 6E 65 3A D6 C7 D0 C4 24 C6 D6 C7 1E C8 04 1B
+5B 30 6D 00 D6 C7 24 CC 00 00 83 5B 27 5D 87 12
+C0 CC 14 C8 14 C8 B0 CA B0 CA 2A C4 E8 C8 01 27
+87 12 42 CB 80 C8 EE C8 40 C6 CE CC 2A C4 7A CB
+32 C5 81 5C 92 42 C0 21 C4 21 30 4D AA CC 81 5B
+82 43 BE 21 30 4D D2 CC 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A CA 82 49 53 00 87 12
+BE CB EA C4 40 C6 12 CD AE CC 14 C8 F0 CC B0 CA
+2A C4 C0 CC F0 CC 2A C4 FA CC 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 C9 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 CC 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C5 B6 C9 0E CA 54 C4
-28 C7 BE CD 70 C5 28 C7 66 CE 34 C4 34 C4 C8 CB
-C8 CB 34 C4 C8 CB C8 CB 2A C4 CE CD 81 3B 82 93
-BE 21 A8 27 87 12 34 C4 2A C4 C8 CB 04 CF D0 CD
-2A C4 6C CE 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CE BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 CE 01 3A 30 12 A4 CE
-87 12 92 C9 B0 C5 B6 C9 CA CE 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CE 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C9
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CD B0 C9 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CE BA 40 86 12 FC FF E4 3F 16 CC 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CE BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CF 06 43 52 45 41 54
-45 00 B0 12 C0 CE BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CC 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CF 05 44
-45 46 45 52 30 12 12 CF 8B 3F 6E CA 05 3E 42 4F
-44 59 2E 52 30 4D 6A CF 04 43 4F 44 45 00 B0 12
-C0 CE 2A 82 82 4A C6 21 87 12 B2 CE 94 D2 66 D2
-2A C4 B8 CF 07 43 4F 44 45 4E 4E 4D 87 12 8C CE
-D0 CD C2 CF 2A C4 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D2 04 CF 2A C4 1A CD 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A D2 DA 21 D9 3F E8 CF 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE D2 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A C4 02 00 A2 52 C6 21 ED 3F 0A CE 85 48 49 32
-4C 4F 87 12 F2 C6 8C D0 C8 CB D0 CD 94 D2 66 D2
-2A C4 5C D0 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 C7 00 00 2E 53 30 4D
-9E CF 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 C7 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C9 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 CF 85 42 45 47 49 4E 30 40 F2 C6 B2 D0
-85 55 4E 54 49 4C 39 40 28 C7 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CF
-85 41 47 41 49 4E 39 40 24 C7 EF 3F 34 CF 85 57
-48 49 4C 45 87 12 78 D0 78 C4 2A C4 22 CE 86 52
-45 50 45 41 54 00 87 12 F6 D0 B8 D0 2A C4 92 D0
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C C7 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA CB 84 4C 4F 4F 50 00 39 40
-5E C7 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C7 85 2B 4C 4F
-4F 50 39 40 4C C7 E5 3F 48 D1 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E C7 00 00 BA 40 24 C7 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A D1 04 4D 4F 56 45 00 0A 4E
+C4 CB 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 CB
+80 C8 EE C8 58 C4 40 C6 CE CC 0C C5 40 C6 5C CD
+14 C8 14 C8 B0 CA B0 CA 14 C8 B0 CA B0 CA 2A C4
+DE CC 81 3B 82 93 BE 21 B5 27 87 12 14 C8 2A C4
+B0 CA FA CD E0 CC 2A C4 62 CD 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 CD 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A CD 01 3A 30 12 A0 CD 92 B3 C6 21 A2 63 C6 21
+87 12 42 CB 80 C8 C8 CD 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E C8 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C CC 90 CB 05 44 45 46 45 52
+B0 12 B8 CD BA 40 30 40 FC FF BA 40 AE CD FE FF
+E3 3F 1E CB 06 43 52 45 41 54 45 00 B0 12 B8 CD
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A CE 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E C9 05 3E 42 4F 44 59 2E 52
+30 4D 44 CE 04 43 4F 44 45 00 B0 12 B8 CD A2 82
+C6 21 87 12 D2 D0 AC D0 2A C4 84 CE 07 43 4F 44
+45 4E 4E 4D B0 12 86 CD F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 D0 FA CD 2A C4 2C CC 03 41
+53 4D B2 40 B0 D0 DA 21 E0 3F AC CE 06 45 4E 44
+41 53 4D 00 87 12 B4 CE F4 D0 2A C4 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 D0 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A C4
+02 00 A2 52 C6 21 ED 3F 1A CD 85 48 49 32 4C 4F
+87 12 A0 CA 4A CF B0 CA E0 CC D2 D0 AC D0 2A C4
+1A CF 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 C6 00 00 2E 53 30 4D 5E CE
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C C6 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 C7
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C CE 85 42 45 47 49 4E 30 40 A0 CA 70 CF 85 55
+4E 54 49 4C 39 40 40 C6 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE CE 85 41
+47 41 49 4E 39 40 3C C6 EF 3F 7A C8 85 57 48 49
+4C 45 87 12 36 CF 76 C4 2A C4 34 C8 86 52 45 50
+45 41 54 00 87 12 B4 CF 76 CF 2A C4 50 CF 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 C6 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 CA 84 4C 4F 4F 50 00 39 40 76 C6
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 C6 85 2B 4C 4F 4F 50
+39 40 64 C6 E5 3F 06 D0 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE D0
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CF
-34 C4 10 00 34 C4 00 00 3C C7 34 C4 00 00 C8 CB
-5E C7 0A D2 F2 C6 34 C4 C8 21 44 C4 F2 C4 C8 CB
-FA C4 8A CF 34 C4 CA 21 FA C4 2A C4 AE CD 05 46
-4F 52 54 48 84 12 24 D2 8E D2 C4 D5 CC D2 2E D2
-74 D0 7C D1 F8 D3 BE D2 8E D4 A8 D4 D0 D0 34 D5
-00 00 CC D3 D8 CD AC CF 00 00 F0 D0 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D2 9C DB 04 DC 50 DB
-6E DC 16 DB 92 DC 42 D8 00 00 0C DB BC DB 6E DB
-AC DB 52 D9 00 00 00 00 A0 DC 58 D2 5C D2 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C CE 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E C9 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 D1 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 D0 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CE 86 5B 54 48 45 4E 5D 00 30 4D 14 D3
-86 5B 45 4C 53 45 5D 00 87 12 34 C4 00 00 36 C5
-B0 C5 B6 C9 1C CC 44 C4 28 C7 8E D3 8A C4 8A C4
-52 C9 06 5B 54 48 45 4E 5D 00 EA D2 32 C7 5C D3
-36 C9 40 C5 54 C4 32 C7 30 D3 2A C4 8A C4 8A C4
-52 C9 06 5B 45 4C 53 45 5D 00 EA D2 32 C7 7C D3
-36 C9 40 C5 54 C4 32 C7 2E D3 2A C4 52 C9 04 5B
-49 46 5D 00 EA D2 32 C7 30 D3 24 C7 2E D3 36 C9
-52 C9 05 0D 0A 6B 6F 20 14 C9 92 C8 2A CC 24 C7
-30 D3 20 D3 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D3 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C5 B6 C9 0E CA 6C C4 2A C4 B4 D3 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C5 B6 C9 0E CA
-6C C4 64 C5 2A C4 E8 D3 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 D1 06 4D 41 52 4B 45 52 00
-B0 12 C0 CE BA 40 84 12 FC FF BA 40 E6 D3 FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A CF 34 D2 C4 D2 D8 D2 2C D4 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D2
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D4 8A D2
-B2 DC 0E D1 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D4 92 42 0C 18 70 D4 EF 3F 60 D4 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E D4 92 42
-C6 21 70 D4 30 4D 74 D4 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 D1 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C8 24 C8 B2 40 3E D5 3C D5
-B2 40 8A D2 0E 18 B2 40 B2 DC 0C 18 30 12 7E D4
-B2 40 8C C8 8A C8 B2 40 46 C9 44 C9 B2 40 A0 C7
-9E C7 B2 40 18 00 0A 18 37 40 1A C4 36 40 BC C4
-35 40 0E C4 34 40 00 C4 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 D4 04 57 41 52 4D 00 30 40 3E D5 3D 40
-74 D5 92 C3 30 01 1E 42 08 18 0E 93 12 24 F2 B0
-10 00 00 02 02 20 3E E3 1E 53 F2 D0 30 00 0A 02
-3E 90 0A 00 B1 27 3E 90 16 00 AE 2F 2E 93 7D 27
-86 2F 30 4D 52 C9 06 0D 1B 5B 37 6D 23 00 14 C9
-E2 C6 52 C9 1F 46 61 73 74 46 6F 72 74 68 20 56
-33 30 30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72
-65 6E 73 20 14 C9 34 C4 80 FF F2 C6 28 C5 D2 C6
-52 C9 0B 62 79 74 65 73 20 66 72 65 65 20 24 C7
-8A CD E2 D2 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
-B2 40 04 A5 20 01 B2 40 88 5A CC 01 B2 43 02 02
-B2 D3 06 02 D2 43 24 02 F2 D3 26 02 F2 40 FD 00
-22 02 E2 D2 24 02 B2 40 00 A5 60 01 B2 40 B4 00
-80 01 92 43 82 01 B2 40 1E 00 84 01 39 40 10 00
-B2 D0 10 00 86 01 92 D2 5E 01 08 18 38 40 59 14
-18 83 FE 23 19 83 FA 23 39 40 00 10 29 83 89 43
-00 20 FC 23 39 40 26 00 29 83 B9 40 D6 D5 DA FF
-FB 23 B2 40 2C C8 E4 FF B2 40 81 00 00 05 92 42
-02 18 06 05 92 42 04 18 08 05 92 C3 00 05 92 D3
-1A 05 3F 40 80 20 31 40 E0 20 30 12 3A D5 49 3F
-38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21 09 9A
-03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A C4 21
-30 4D 1C 15 B0 12 2A C4 B6 C9 0E CA 32 C7 A8 D6
-CA CA 28 C7 BE CD CA D6 AA D6 29 4E 39 90 86 12
-02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E 02 00
-04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41 3E 40
-28 00 B0 12 92 D6 19 42 C6 21 A2 53 C6 21 89 4E
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 C8
+CA 21 F2 C4 2A C4 84 12 7E D0 AE CF 3A D3 DE CF
+BE CC 32 CF 3A D0 4E D4 64 C8 66 D1 80 D1 8E CF
+00 D2 00 00 20 D4 E8 CC 78 CE 00 00 84 12 7E D0
+6C D9 CE D9 20 D9 42 DA E6 D8 00 00 16 D6 00 00
+DC D8 8C D9 3E D9 7C D9 26 D7 00 00 00 00 1E DA
+AA D0 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 D0 EE D0
+F4 D0 04 D1 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 CD 09 50 57 52 5F 53 54 41
+54 45 84 12 FC D0 D0 D0 54 DA CC CF 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 D1 92 42 0C 18
+48 D1 EF 3F 38 D1 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 D1 92 42 C6 21 48 D1 30 4D 4C D1
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC CF 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 C6
+DE C6 B2 40 0A D2 08 D2 B2 40 D0 D0 0E 18 B2 40
+54 DA 0C 18 30 12 56 D1 B2 40 86 C7 84 C7 B2 40
+08 C8 06 C8 B2 40 98 C6 96 C6 B2 40 18 00 0A 18
+37 40 1A C4 36 40 92 C4 35 40 0E C4 34 40 00 C4
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A D1
+04 57 41 52 4D 00 30 40 0A D2 3D 40 40 D2 92 C3
+30 01 1E 42 08 18 0E 93 12 24 F2 B0 10 00 00 02
+02 20 3E E3 1E 53 F2 D0 30 00 0A 02 3E 90 0A 00
+B7 27 3E 90 16 00 B4 2F 2E 93 83 27 8C 2F 30 4D
+1E C8 06 0D 1B 5B 37 6D 23 00 D6 C7 34 C6 1E C8
+19 46 61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D
+2E 54 68 6F 6F 72 65 6E 73 20 D6 C7 14 C8 30 FF
+A0 CA B8 C4 24 C6 1E C8 0A 62 79 74 65 73 20 66
+72 65 65 00 3C C6 9A CC 82 CF 04 43 4F 4C 44 00
+92 B3 0A 05 FD 23 B2 40 04 A5 20 01 40 D2 B2 40
+88 5A CC 01 B2 43 02 02 B2 D3 06 02 D2 43 24 02
+F2 D3 26 02 F2 40 FD 00 22 02 E2 D2 24 02 B2 40
+00 A5 60 01 B2 40 B4 00 80 01 92 43 82 01 B2 40
+1E 00 84 01 39 40 10 00 B2 D0 10 00 86 01 92 D2
+5E 01 08 18 38 40 59 14 18 83 FE 23 19 83 FA 23
+39 40 00 10 29 83 89 43 00 20 FC 23 39 40 26 00
+29 83 B9 40 9E D2 DA FF FB 23 B2 40 26 C7 E4 FF
+B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
+08 05 92 C3 00 05 92 D3 1A 05 3F 40 80 20 31 40
+E0 20 30 12 06 D2 51 3F 8A D2 07 43 4F 4D 50 41
+52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C 0C 24
+1B 83 07 30 1C 83 07 30 19 53 F9 98 FF FF F5 27
+02 2C 3E 43 30 4D 1E 43 30 4D B2 CD 86 5B 54 48
+45 4E 5D 00 30 4D 6C D3 86 5B 45 4C 53 45 5D 00
+87 12 14 C8 00 00 C6 C4 42 CB 80 C8 24 CB 34 C4
+40 C6 E2 D3 44 C4 1E C8 06 5B 54 48 45 4E 5D 00
+42 D3 4A C6 B2 D3 F8 C7 D0 C4 58 C4 4A C6 88 D3
+2A C4 44 C4 1E C8 06 5B 45 4C 53 45 5D 00 42 D3
+4A C6 D0 D3 F8 C7 D0 C4 58 C4 4A C6 86 D3 2A C4
+1E C8 04 5B 49 46 5D 00 42 D3 4A C6 88 D3 3C C6
+86 D3 F8 C7 1E C8 05 0D 0A 6B 6F 20 D6 C7 8C C7
+32 CB 3C C6 88 D3 78 D3 84 5B 49 46 5D 00 0E 93
+3E 4F BE 27 30 4D F8 D3 89 5B 44 45 46 49 4E 45
+44 5D 87 12 42 CB 80 C8 EE C8 6A C4 2A C4 08 D4
+8B 5B 55 4E 44 45 46 49 4E 45 44 5D 87 12 42 CB
+80 C8 EE C8 6A C4 00 C5 2A C4 3C D4 3D 41 B2 4E
+0E 18 A2 4E 0C 18 3E 4F 30 40 56 D1 48 D0 06 4D
+41 52 4B 45 52 00 B0 12 B8 CD BA 40 84 12 FC FF
+BA 40 3A D4 FE FF 9A 42 C8 21 00 00 28 83 8A 48
+02 00 A2 52 C6 21 30 40 00 CE 1C 15 B0 12 2A C4
+80 C8 EE C8 4A C6 90 D4 AA C9 40 C6 CE CC AA D4
+92 D4 39 4E 39 80 86 12 08 24 19 53 02 20 2E 4E
+04 3C 2E 53 19 53 01 24 2E 82 1B 17 30 41 3E 40
+28 00 B0 12 7A D4 19 42 C6 21 A2 53 C6 21 89 4E
 00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53 C4 21
-B0 12 2A C4 B6 C9 CA CA 28 C7 08 D7 FE D6 21 53
-3E 90 10 00 83 2D E1 2B 0A D7 B2 41 C4 21 DD 3F
-87 12 B0 C5 70 D6 18 D7 0C 43 1B 42 C6 21 A2 53
-C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53 C4 21
-B0 12 92 D6 0E 93 03 20 3C 40 00 03 21 3C 1E 93
-03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40 20 03
-17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92 03 20
-3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03 08 3C
-3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02
-92 53 C4 21 B0 12 92 D6 ED 3F 7A 90 40 00 16 20
-3C 40 20 00 92 53 C4 21 B0 12 E6 D6 0C 20 3C 50
-10 00 3E 40 2B 00 B0 12 E6 D6 92 92 C0 21 C4 21
-02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12 E6 D6
-FA 23 3C 50 10 00 B0 12 CE D6 EF 3F 0C 43 1B 42
-C6 21 A2 53 C6 21 87 12 B0 C5 70 D6 EE D7 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F
-B0 12 E6 D6 E1 23 3C 50 80 00 B0 12 CE D6 DC 3F
-1C C8 04 52 45 54 49 00 87 12 34 C4 00 13 C8 CB
-2A C4 34 C4 2C 00 10 D7 E6 D7 2C D8 2E 4E 0E DC
-09 4B A4 3F 3E D0 03 4D 4F 56 84 12 22 D8 00 40
-36 D8 05 4D 4F 56 2E 42 84 12 22 D8 40 40 00 00
-03 41 44 44 84 12 22 D8 00 50 50 D8 05 41 44 44
-2E 42 84 12 22 D8 40 50 5C D8 04 41 44 44 43 00
-84 12 22 D8 00 60 6A D8 06 41 44 44 43 2E 42 00
-84 12 22 D8 40 60 12 D8 04 53 55 42 43 00 84 12
-22 D8 00 70 88 D8 06 53 55 42 43 2E 42 00 84 12
-22 D8 40 70 96 D8 03 53 55 42 84 12 22 D8 00 80
-A6 D8 05 53 55 42 2E 42 84 12 22 D8 40 80 20 D0
-03 43 4D 50 84 12 22 D8 00 90 C0 D8 05 43 4D 50
-2E 42 84 12 22 D8 40 90 0E D0 04 44 41 44 44 00
-84 12 22 D8 00 A0 DA D8 06 44 41 44 44 2E 42 00
-84 12 22 D8 40 A0 CC D8 03 42 49 54 84 12 22 D8
-00 B0 F8 D8 05 42 49 54 2E 42 84 12 22 D8 40 B0
-04 D9 03 42 49 43 84 12 22 D8 00 C0 12 D9 05 42
-49 43 2E 42 84 12 22 D8 40 C0 1E D9 03 42 49 53
-84 12 22 D8 00 D0 2C D9 05 42 49 53 2E 42 84 12
-22 D8 40 D0 00 00 03 58 4F 52 84 12 22 D8 00 E0
-46 D9 05 58 4F 52 2E 42 84 12 22 D8 40 E0 78 D8
-03 41 4E 44 84 12 22 D8 00 F0 60 D9 05 41 4E 44
-2E 42 84 12 22 D8 40 F0 B0 C5 10 D7 7E D9 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F B2 D8
-03 52 52 43 84 12 78 D9 00 10 90 D9 05 52 52 43
-2E 42 84 12 78 D9 40 10 9C D9 04 53 57 50 42 00
-84 12 78 D9 80 10 AA D9 03 52 52 41 84 12 78 D9
-00 11 B8 D9 05 52 52 41 2E 42 84 12 78 D9 40 11
-C4 D9 03 53 58 54 84 12 78 D9 80 11 00 00 04 50
-55 53 48 00 84 12 78 D9 00 12 DE D9 06 50 55 53
-48 2E 42 00 84 12 78 D9 40 12 38 D9 04 43 41 4C
-4C 00 84 12 78 D9 80 12 1A 53 0E 4A 87 12 E2 C6
-52 C9 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
-3A CD B0 C5 70 D6 28 DA 92 53 C4 21 3E 40 2C 00
-B0 12 2A C4 B6 C9 CA CA 28 C7 BE CD DC D7 40 DA
-0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C
-59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E
-94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F D2 D9 04 52
-52 43 4D 00 84 12 22 DA 50 00 6E DA 04 52 52 41
-4D 00 84 12 22 DA 50 01 7C DA 04 52 4C 41 4D 00
-84 12 22 DA 50 02 8A DA 04 52 52 55 4D 00 84 12
-22 DA 50 03 EC D9 05 50 55 53 48 4D 84 12 22 DA
-00 15 A6 DA 04 50 4F 50 4D 00 84 12 22 DA 00 17
-85 12 00 3C 98 DA 03 53 3E 3D 85 12 00 38 C6 DA
-02 53 3C 00 85 12 00 34 B4 DA 03 30 3E 3D 85 12
-00 30 DA DA 02 30 3C 00 85 12 00 30 00 00 02 55
-3C 00 85 12 00 2C EE DA 03 55 3E 3D 85 12 00 28
-E4 DA 03 30 3C 3E 85 12 00 24 02 DB 02 30 3D 00
+B0 12 2A C4 80 C8 AA C9 40 C6 E8 D4 DE D4 21 53
+3E 90 10 00 7D 2D E1 2B EA D4 B2 41 C4 21 DD 3F
+87 12 42 CB 74 C8 F8 D4 0C 43 1B 42 C6 21 A2 53
+C6 21 6A 4E 3E 4F 7A 90 23 00 27 20 92 53 C4 21
+B0 12 7A D4 3C 40 00 03 0E 93 1C 24 3C 40 10 03
+1E 93 18 24 3C 40 20 03 2E 93 14 24 3C 40 20 02
+2E 92 10 24 3C 40 30 02 3E 92 0C 24 3C 40 30 03
+3E 93 08 24 3C 40 30 00 19 42 C6 21 A2 53 C6 21
+89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00 07 20
+3C 40 10 02 92 53 C4 21 B0 12 7A D4 ED 3F 7A 90
+40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12 C6 D4
+0C 20 3C 50 10 00 3E 40 2B 00 B0 12 C6 D4 92 92
+C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F
+B0 12 C6 D4 FA 23 3C 50 10 00 B0 12 AE D4 EF 3F
+0C 43 1B 42 C6 21 A2 53 C6 21 87 12 42 CB 74 C8
+C2 D5 FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
+82 00 C8 3F B0 12 C6 D4 E1 23 3C 50 80 00 B0 12
+AE D4 DC 3F D6 C6 04 52 45 54 49 00 87 12 14 C8
+00 13 B0 CA 2A C4 14 C8 2C 00 F0 D4 BA D5 00 D6
+09 4B 2E 4E 0E DC A4 3F FC CE 03 4D 4F 56 84 12
+F6 D5 00 40 0A D6 05 4D 4F 56 2E 42 84 12 F6 D5
+40 40 00 00 03 41 44 44 84 12 F6 D5 00 50 24 D6
+05 41 44 44 2E 42 84 12 F6 D5 40 50 30 D6 04 41
+44 44 43 00 84 12 F6 D5 00 60 3E D6 06 41 44 44
+43 2E 42 00 84 12 F6 D5 40 60 E6 D5 04 53 55 42
+43 00 84 12 F6 D5 00 70 5C D6 06 53 55 42 43 2E
+42 00 84 12 F6 D5 40 70 6A D6 03 53 55 42 84 12
+F6 D5 00 80 7A D6 05 53 55 42 2E 42 84 12 F6 D5
+40 80 DE CE 03 43 4D 50 84 12 F6 D5 00 90 94 D6
+05 43 4D 50 2E 42 84 12 F6 D5 40 90 CC CE 04 44
+41 44 44 00 84 12 F6 D5 00 A0 AE D6 06 44 41 44
+44 2E 42 00 84 12 F6 D5 40 A0 A0 D6 03 42 49 54
+84 12 F6 D5 00 B0 CC D6 05 42 49 54 2E 42 84 12
+F6 D5 40 B0 D8 D6 03 42 49 43 84 12 F6 D5 00 C0
+E6 D6 05 42 49 43 2E 42 84 12 F6 D5 40 C0 F2 D6
+03 42 49 53 84 12 F6 D5 00 D0 00 D7 05 42 49 53
+2E 42 84 12 F6 D5 40 D0 00 00 03 58 4F 52 84 12
+F6 D5 00 E0 1A D7 05 58 4F 52 2E 42 84 12 F6 D5
+40 E0 4C D6 03 41 4E 44 84 12 F6 D5 00 F0 34 D7
+05 41 4E 44 2E 42 84 12 F6 D5 40 F0 42 CB F0 D4
+52 D7 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
+4F 3F 86 D6 03 52 52 43 84 12 4C D7 00 10 64 D7
+05 52 52 43 2E 42 84 12 4C D7 40 10 70 D7 04 53
+57 50 42 00 84 12 4C D7 80 10 7E D7 03 52 52 41
+84 12 4C D7 00 11 8C D7 05 52 52 41 2E 42 84 12
+4C D7 40 11 98 D7 03 53 58 54 84 12 4C D7 80 11
+00 00 04 50 55 53 48 00 84 12 4C D7 00 12 B2 D7
+06 50 55 53 48 2E 42 00 84 12 4C D7 40 12 0C D7
+04 43 41 4C 4C 00 84 12 4C D7 80 12 1A 53 0E 4A
+87 12 34 C6 1E C8 0D 6F 75 74 20 6F 66 20 62 6F
+75 6E 64 73 4C CC 42 CB 74 C8 FC D7 92 53 C4 21
+3E 40 2C 00 B0 12 2A C4 80 C8 AA C9 40 C6 CE CC
+B0 D5 14 D8 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F
+A6 D7 04 52 52 43 4D 00 84 12 F6 D7 50 00 42 D8
+04 52 52 41 4D 00 84 12 F6 D7 50 01 50 D8 04 52
+4C 41 4D 00 84 12 F6 D7 50 02 5E D8 04 52 52 55
+4D 00 84 12 F6 D7 50 03 C0 D7 05 50 55 53 48 4D
+84 12 F6 D7 00 15 7A D8 04 50 4F 50 4D 00 84 12
+F6 D7 00 17 6C D8 03 53 3E 3D 85 12 00 38 96 D8
+02 53 3C 00 85 12 00 34 88 D8 03 30 3E 3D 85 12
+00 30 AA D8 02 30 3C 00 85 12 00 30 00 00 02 55
+3C 00 85 12 00 2C BE D8 03 55 3E 3D 85 12 00 28
+B4 D8 03 30 3C 3E 85 12 00 24 D2 D8 02 30 3D 00
 85 12 00 20 00 00 02 49 46 00 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 0E 4A 30 4D F8 DA 04 54 48 45
+00 00 A2 53 C6 21 0E 4A 30 4D C8 D8 04 54 48 45
 4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53 0A 89
-0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D E8 D8
+0A 11 3A 90 00 02 63 2F 88 DA 00 00 30 4D BC D6
 04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C 00 00
-A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 2C DB 05 55
+A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F FC D8 05 55
 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21 2A 83
-0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03 08 DA
-89 48 00 00 A2 53 C6 21 30 4D 6C D9 05 41 47 41
-49 4E 87 12 C0 DA 74 DB 2A C4 00 00 05 57 48 49
-4C 45 87 12 1A DB 78 C4 2A C4 D0 DA 06 52 45 50
-45 41 54 00 87 12 C0 DA 74 DB 32 DB 2A C4 D0 DB
-3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43 00 00
-CA 23 98 42 C6 21 00 00 30 4D FC D9 03 42 57 31
-84 12 CE DB E0 21 EC DB 03 42 57 32 84 12 CE DB
-E2 21 F8 DB 03 42 57 33 84 12 CE DB E4 21 10 DC
-3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43 00 00
-8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F
-30 4D 00 00 03 46 57 31 84 12 0E DC E6 21 34 DC
-03 46 57 32 84 12 0E DC E8 21 40 DC 03 46 57 33
-84 12 0E DC EA 21 3E 90 00 30 07 24 3E E0 00 04
-3E B0 00 10 02 24 3E E0 00 08 30 4D 4C DC 04 47
-4F 54 4F 00 87 12 C0 DA B0 CD BE CB 2A C4 00 00
-05 3F 47 4F 54 4F 87 12 56 DC B0 CD BE CB 2A C4
-00 00 03 4A 4D 50 87 12 B0 CD A2 DB 2A C4 80 DC
-04 3F 4A 4D 50 00 87 12 56 DC B0 CD 78 C4 74 DB
-2A C4
+0A 89 0A 11 3A 90 00 FE 42 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C6 21 30 4D 40 D7 05 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49
+4C 45 87 12 EA D8 76 C4 2A C4 A0 D8 06 52 45 50
+45 41 54 00 87 12 72 D9 02 D9 2A C4 9E D9 3D 41
+08 4E 3E 4F 2A 48 B2 92 C4 21 CD 2F 98 42 C6 21
+00 00 30 4D D0 D7 03 42 57 31 84 12 9C D9 00 00
+B6 D9 03 42 57 32 84 12 9C D9 00 00 C2 D9 03 42
+57 33 84 12 9C D9 00 00 DA D9 3D 41 1A 42 C6 21
+28 4E B2 92 C4 21 90 2B BA 4F 00 00 A2 53 C6 21
+8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12
+D8 D9 00 00 FA D9 03 46 57 32 84 12 D8 D9 00 00
+06 DA 03 46 57 33 84 12 D8 D9 00 00 00 00 05 3F
+47 4F 54 4F 3E 90 00 30 07 24 3E E0 00 04 3E B0
+00 10 02 24 3E E0 00 08 87 12 C0 CC DA CA 2A C4
+12 DA 04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
+00 3C F2 3F
 @FFFE
-D6 D5
+9E D2
 q
diff --git a/binaries/CHIPSTICK_FR2433_4MHz.txt b/binaries/CHIPSTICK_FR2433_4MHz.txt
deleted file mode 100644 (file)
index 3ff23fe..0000000
+++ /dev/null
@@ -1,403 +0,0 @@
-@1800
-10 00 02 00 21 BB A0 0F 05 00 18 00 B4 DC 8A D2
-2C 01 7B 30 FC C7 0E C8
-@C400
-2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
-8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C4
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C4 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C4 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C4 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C4 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C4 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C4 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C4 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C4 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C5 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C4 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C5 02 31 2D 00
-1E 83 30 4D D8 C4 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C5
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C5 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C5 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C4 01 3E 3E 8F F4 3B EB 37 0E C5 02 42 4C 00
-85 12 20 00 AC C5 04 42 41 53 45 00 85 12 DC 21
-C8 C4 05 53 54 41 54 45 85 12 BE 21 96 C5 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 C5 06 55 4D 2F
-4D 4F 44 00 30 12 62 C4 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C4 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C5
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 C5 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 C6
-02 23 53 00 87 12 32 C6 6A C6 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C6 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C5 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C5
-02 44 2E 00 87 12 D2 C5 44 C4 B0 C4 4C C5 64 C6
-BC C4 A2 C6 7E C6 14 C9 DC C8 2A C4 DC C5 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C4
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C6 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 C4
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A C6
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C6 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C6 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C5 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C7 03 4B 45 59 30 40 A0 C7
-18 42 0C 05 2F 83 8F 4E 00 00 B0 12 FC C7 92 B3
-1C 05 FD 27 1E 42 0C 05 B0 12 0E C8 30 4D 00 C7
-06 41 43 43 45 50 54 00 3C 40 6A C8 3B 40 34 C8
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C8 92 B3 1C 05 05 24 18 42 0C 05 38 90
-0A 00 04 20 21 53 39 40 22 C8 4D 15 A2 B3 1C 05
-FD 27 B2 40 11 00 0E 05 E2 C2 22 02 30 41 B2 40
-13 00 0E 05 E2 D2 22 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C8 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 0C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 1C 05 FD 27 82 48 0E 05 30 4D 60 C8
-2D 83 92 B3 1C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C6 04 45 4D 49 54 00 30 40 8C C8 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 C8 04 45 43 48
-4F 00 B2 40 82 48 58 C8 82 43 DE 21 30 4D E0 C6
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C8 92 43
-DE 21 30 4D 9C C6 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C8 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C8 EF 3F 00 C9
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C7 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C9 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C9 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C7 02 43
-52 00 30 40 46 C9 87 12 52 C9 02 0D 0A 00 14 C9
-2A C4 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C8 82 53 22 00 82 43 B4 21
-87 12 34 C4 52 C9 C8 CB 34 C4 22 00 B6 C9 80 C9
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 C8 82 2E
-22 00 87 12 6C C9 34 C4 14 C9 C8 CB 2A C4 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
-60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
-18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
-F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
-CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
-0C 4E 65 4C 74 40 80 00 3B 40 CA 21 3E 4B 0E 93
-1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
-FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
-0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
-09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C4 34 40 00 C4 30 4D A2 C5 07 3E
-4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
-DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
-07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
-D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
-E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 CB 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 CB 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C5
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C8 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C5 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 CB 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 C4 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C9 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A CC B0 C5
-B6 C9 44 CC 3D 40 4C CC E2 22 5D 3E 4E CC 0A 4E
-3E 4F 3D 40 64 CC 39 27 3D 40 3E CC 1A E2 BE 21
-B3 27 AD 23 66 CC 3E 4F 3D 40 3E CC BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CF
-CD 3F B6 CB 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A C4 3A CC
-A2 CC B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C C5 04 51 55 49 54 00 82 43 08 18 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A C4
-42 C9 92 C8 DC C8 3A CC DE C4 70 C5 52 C9 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CD 34 C4
-30 FF F2 C6 8A C5 52 C9 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CD 24 C7 D0 CC C0 C7 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C CD 86 41 42 4F 52 54
-22 00 87 12 6C C9 34 C4 2E CD C8 CB 2A C4 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D4 B0 12
-FC C7 92 C3 1C 05 38 40 A8 2A 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 1C 05 F2 23 87 12
-6A D4 34 C4 DE 21 F2 C4 B2 C8 52 C9 04 1B 5B 37
-6D 00 14 C9 54 C4 28 C7 8A CD 42 C9 52 C9 05 6C
-69 6E 65 3A 14 C9 40 C5 D2 C6 14 C9 52 C9 04 1B
-5B 30 6D 00 14 C9 12 CD 00 00 83 5B 27 5D 87 12
-B0 CD 34 C4 34 C4 C8 CB C8 CB 2A C4 08 CA 01 27
-87 12 B0 C5 B6 C9 0E CA 28 C7 BE CD 2A C4 6E CC
-CE C5 81 5C 92 42 C0 21 C4 21 30 4D 9A CD 81 5B
-82 43 BE 21 30 4D C2 CD 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C7 82 49 53 00 87 12
-C8 C5 F2 C4 28 C7 02 CE 9E CD 34 C4 E0 CD C8 CB
-2A C4 B0 CD E0 CD 2A C4 EA CD 09 49 4D 4D 45 44
-49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 C9 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 CC 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C5 B6 C9 0E CA 54 C4
-28 C7 BE CD 70 C5 28 C7 66 CE 34 C4 34 C4 C8 CB
-C8 CB 34 C4 C8 CB C8 CB 2A C4 CE CD 81 3B 82 93
-BE 21 A8 27 87 12 34 C4 2A C4 C8 CB 04 CF D0 CD
-2A C4 6C CE 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CE BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 CE 01 3A 30 12 A4 CE
-87 12 92 C9 B0 C5 B6 C9 CA CE 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CE 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C9
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CD B0 C9 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CE BA 40 86 12 FC FF E4 3F 16 CC 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CE BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CF 06 43 52 45 41 54
-45 00 B0 12 C0 CE BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CC 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CF 05 44
-45 46 45 52 30 12 12 CF 8B 3F 6E CA 05 3E 42 4F
-44 59 2E 52 30 4D 6A CF 04 43 4F 44 45 00 B0 12
-C0 CE 2A 82 82 4A C6 21 87 12 B2 CE 94 D2 66 D2
-2A C4 B8 CF 07 43 4F 44 45 4E 4E 4D 87 12 8C CE
-D0 CD C2 CF 2A C4 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D2 04 CF 2A C4 1A CD 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A D2 DA 21 D9 3F E8 CF 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE D2 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A C4 02 00 A2 52 C6 21 ED 3F 0A CE 85 48 49 32
-4C 4F 87 12 F2 C6 8C D0 C8 CB D0 CD 94 D2 66 D2
-2A C4 5C D0 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 C7 00 00 2E 53 30 4D
-9E CF 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 C7 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C9 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 CF 85 42 45 47 49 4E 30 40 F2 C6 B2 D0
-85 55 4E 54 49 4C 39 40 28 C7 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CF
-85 41 47 41 49 4E 39 40 24 C7 EF 3F 34 CF 85 57
-48 49 4C 45 87 12 78 D0 78 C4 2A C4 22 CE 86 52
-45 50 45 41 54 00 87 12 F6 D0 B8 D0 2A C4 92 D0
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C C7 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA CB 84 4C 4F 4F 50 00 39 40
-5E C7 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C7 85 2B 4C 4F
-4F 50 39 40 4C C7 E5 3F 48 D1 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E C7 00 00 BA 40 24 C7 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A D1 04 4D 4F 56 45 00 0A 4E
-38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
-F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE D0
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CF
-34 C4 10 00 34 C4 00 00 3C C7 34 C4 00 00 C8 CB
-5E C7 0A D2 F2 C6 34 C4 C8 21 44 C4 F2 C4 C8 CB
-FA C4 8A CF 34 C4 CA 21 FA C4 2A C4 AE CD 05 46
-4F 52 54 48 84 12 24 D2 8E D2 C4 D5 CC D2 2E D2
-74 D0 7C D1 F8 D3 BE D2 8E D4 A8 D4 D0 D0 34 D5
-00 00 CC D3 D8 CD AC CF 00 00 F0 D0 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D2 9E DB 06 DC 52 DB
-70 DC 18 DB 94 DC 44 D8 00 00 0E DB BE DB 70 DB
-AE DB 54 D9 00 00 00 00 A2 DC 58 D2 5C D2 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C CE 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E C9 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 D1 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 D0 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CE 86 5B 54 48 45 4E 5D 00 30 4D 14 D3
-86 5B 45 4C 53 45 5D 00 87 12 34 C4 00 00 36 C5
-B0 C5 B6 C9 1C CC 44 C4 28 C7 8E D3 8A C4 8A C4
-52 C9 06 5B 54 48 45 4E 5D 00 EA D2 32 C7 5C D3
-36 C9 40 C5 54 C4 32 C7 30 D3 2A C4 8A C4 8A C4
-52 C9 06 5B 45 4C 53 45 5D 00 EA D2 32 C7 7C D3
-36 C9 40 C5 54 C4 32 C7 2E D3 2A C4 52 C9 04 5B
-49 46 5D 00 EA D2 32 C7 30 D3 24 C7 2E D3 36 C9
-52 C9 05 0D 0A 6B 6F 20 14 C9 92 C8 2A CC 24 C7
-30 D3 20 D3 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D3 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C5 B6 C9 0E CA 6C C4 2A C4 B4 D3 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C5 B6 C9 0E CA
-6C C4 64 C5 2A C4 E8 D3 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 D1 06 4D 41 52 4B 45 52 00
-B0 12 C0 CE BA 40 84 12 FC FF BA 40 E6 D3 FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A CF 34 D2 C4 D2 D8 D2 2C D4 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D2
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D4 8A D2
-B4 DC 0E D1 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D4 92 42 0C 18 70 D4 EF 3F 60 D4 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E D4 92 42
-C6 21 70 D4 30 4D 74 D4 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 D1 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C8 24 C8 B2 40 3E D5 3C D5
-B2 40 8A D2 0E 18 B2 40 B4 DC 0C 18 30 12 7E D4
-B2 40 8C C8 8A C8 B2 40 46 C9 44 C9 B2 40 A0 C7
-9E C7 B2 40 18 00 0A 18 37 40 1A C4 36 40 BC C4
-35 40 0E C4 34 40 00 C4 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 D4 04 57 41 52 4D 00 30 40 3E D5 3D 40
-74 D5 92 C3 30 01 1E 42 08 18 0E 93 12 24 F2 B0
-10 00 00 02 02 20 3E E3 1E 53 F2 D0 30 00 0A 02
-3E 90 0A 00 B1 27 3E 90 16 00 AE 2F 2E 93 7D 27
-86 2F 30 4D 52 C9 06 0D 1B 5B 37 6D 23 00 14 C9
-E2 C6 52 C9 1F 46 61 73 74 46 6F 72 74 68 20 56
-33 30 30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72
-65 6E 73 20 14 C9 34 C4 80 FF F2 C6 28 C5 D2 C6
-52 C9 0B 62 79 74 65 73 20 66 72 65 65 20 24 C7
-8A CD E2 D2 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
-B2 40 04 A5 20 01 B2 40 88 5A CC 01 B2 43 02 02
-B2 D3 06 02 D2 43 24 02 F2 D3 26 02 F2 40 FD 00
-22 02 E2 D2 24 02 B2 40 00 A5 60 01 B2 40 D2 00
-80 01 B2 40 05 00 82 01 B2 40 79 00 84 01 39 40
-40 00 B2 D0 10 00 86 01 92 D2 5E 01 08 18 38 40
-59 14 18 83 FE 23 19 83 FA 23 39 40 00 10 29 83
-89 43 00 20 FC 23 39 40 26 00 29 83 B9 40 D6 D5
-DA FF FB 23 B2 40 2C C8 E4 FF B2 40 81 00 00 05
-92 42 02 18 06 05 92 42 04 18 08 05 92 C3 00 05
-92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12 3A D5
-48 3F 38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21
-09 9A 03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A
-C4 21 30 4D 1C 15 B0 12 2A C4 B6 C9 0E CA 32 C7
-AA D6 CA CA 28 C7 BE CD CC D6 AC D6 29 4E 39 90
-86 12 02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E
-02 00 04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41
-3E 40 28 00 B0 12 94 D6 19 42 C6 21 A2 53 C6 21
-89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53
-C4 21 B0 12 2A C4 B6 C9 CA CA 28 C7 0A D7 00 D7
-21 53 3E 90 10 00 83 2D E1 2B 0C D7 B2 41 C4 21
-DD 3F 87 12 B0 C5 72 D6 1A D7 0C 43 1B 42 C6 21
-A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53
-C4 21 B0 12 94 D6 0E 93 03 20 3C 40 00 03 21 3C
-1E 93 03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40
-20 03 17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92
-03 20 3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03
-08 3C 3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40
-10 02 92 53 C4 21 B0 12 94 D6 ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 21 B0 12 E8 D6 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 E8 D6 92 92 C0 21
-C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12
-E8 D6 FA 23 3C 50 10 00 B0 12 D0 D6 EF 3F 0C 43
-1B 42 C6 21 A2 53 C6 21 87 12 B0 C5 72 D6 F0 D7
-FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
-C8 3F B0 12 E8 D6 E1 23 3C 50 80 00 B0 12 D0 D6
-DC 3F 1C C8 04 52 45 54 49 00 87 12 34 C4 00 13
-C8 CB 2A C4 34 C4 2C 00 12 D7 E8 D7 2E D8 2E 4E
-0E DC 09 4B A4 3F 3E D0 03 4D 4F 56 84 12 24 D8
-00 40 38 D8 05 4D 4F 56 2E 42 84 12 24 D8 40 40
-00 00 03 41 44 44 84 12 24 D8 00 50 52 D8 05 41
-44 44 2E 42 84 12 24 D8 40 50 5E D8 04 41 44 44
-43 00 84 12 24 D8 00 60 6C D8 06 41 44 44 43 2E
-42 00 84 12 24 D8 40 60 14 D8 04 53 55 42 43 00
-84 12 24 D8 00 70 8A D8 06 53 55 42 43 2E 42 00
-84 12 24 D8 40 70 98 D8 03 53 55 42 84 12 24 D8
-00 80 A8 D8 05 53 55 42 2E 42 84 12 24 D8 40 80
-20 D0 03 43 4D 50 84 12 24 D8 00 90 C2 D8 05 43
-4D 50 2E 42 84 12 24 D8 40 90 0E D0 04 44 41 44
-44 00 84 12 24 D8 00 A0 DC D8 06 44 41 44 44 2E
-42 00 84 12 24 D8 40 A0 CE D8 03 42 49 54 84 12
-24 D8 00 B0 FA D8 05 42 49 54 2E 42 84 12 24 D8
-40 B0 06 D9 03 42 49 43 84 12 24 D8 00 C0 14 D9
-05 42 49 43 2E 42 84 12 24 D8 40 C0 20 D9 03 42
-49 53 84 12 24 D8 00 D0 2E D9 05 42 49 53 2E 42
-84 12 24 D8 40 D0 00 00 03 58 4F 52 84 12 24 D8
-00 E0 48 D9 05 58 4F 52 2E 42 84 12 24 D8 40 E0
-7A D8 03 41 4E 44 84 12 24 D8 00 F0 62 D9 05 41
-4E 44 2E 42 84 12 24 D8 40 F0 B0 C5 12 D7 80 D9
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-B4 D8 03 52 52 43 84 12 7A D9 00 10 92 D9 05 52
-52 43 2E 42 84 12 7A D9 40 10 9E D9 04 53 57 50
-42 00 84 12 7A D9 80 10 AC D9 03 52 52 41 84 12
-7A D9 00 11 BA D9 05 52 52 41 2E 42 84 12 7A D9
-40 11 C6 D9 03 53 58 54 84 12 7A D9 80 11 00 00
-04 50 55 53 48 00 84 12 7A D9 00 12 E0 D9 06 50
-55 53 48 2E 42 00 84 12 7A D9 40 12 3A D9 04 43
-41 4C 4C 00 84 12 7A D9 80 12 1A 53 0E 4A 87 12
-E2 C6 52 C9 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 3A CD B0 C5 72 D6 2A DA 92 53 C4 21 3E 40
-2C 00 B0 12 2A C4 B6 C9 CA CA 28 C7 BE CD DE D7
-42 DA 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F
-5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F D4 D9
-04 52 52 43 4D 00 84 12 24 DA 50 00 70 DA 04 52
-52 41 4D 00 84 12 24 DA 50 01 7E DA 04 52 4C 41
-4D 00 84 12 24 DA 50 02 8C DA 04 52 52 55 4D 00
-84 12 24 DA 50 03 EE D9 05 50 55 53 48 4D 84 12
-24 DA 00 15 A8 DA 04 50 4F 50 4D 00 84 12 24 DA
-00 17 85 12 00 3C 9A DA 03 53 3E 3D 85 12 00 38
-C8 DA 02 53 3C 00 85 12 00 34 B6 DA 03 30 3E 3D
-85 12 00 30 DC DA 02 30 3C 00 85 12 00 30 00 00
-02 55 3C 00 85 12 00 2C F0 DA 03 55 3E 3D 85 12
-00 28 E6 DA 03 30 3C 3E 85 12 00 24 04 DB 02 30
-3D 00 85 12 00 20 00 00 02 49 46 00 1A 42 C6 21
-8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D FA DA 04 54
-48 45 4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53
-0A 89 0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D
-EA D8 04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C
-00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 2E DB
-05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21
-2A 83 0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 21 30 4D 6E D9 05 41
-47 41 49 4E 87 12 C2 DA 76 DB 2A C4 00 00 05 57
-48 49 4C 45 87 12 1C DB 78 C4 2A C4 D2 DA 06 52
-45 50 45 41 54 00 87 12 C2 DA 76 DB 34 DB 2A C4
-D2 DB 3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43
-00 00 CA 23 98 42 C6 21 00 00 30 4D FE D9 03 42
-57 31 84 12 D0 DB E0 21 EE DB 03 42 57 32 84 12
-D0 DB E2 21 FA DB 03 42 57 33 84 12 D0 DB E4 21
-12 DC 3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43
-00 00 8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 84 12 10 DC E6 21
-36 DC 03 46 57 32 84 12 10 DC E8 21 42 DC 03 46
-57 33 84 12 10 DC EA 21 3E 90 00 30 07 24 3E E0
-00 04 3E B0 00 10 02 24 3E E0 00 08 30 4D 4E DC
-04 47 4F 54 4F 00 87 12 C2 DA B0 CD BE CB 2A C4
-00 00 05 3F 47 4F 54 4F 87 12 58 DC B0 CD BE CB
-2A C4 00 00 03 4A 4D 50 87 12 B0 CD A4 DB 2A C4
-82 DC 04 3F 4A 4D 50 00 87 12 58 DC B0 CD 78 C4
-76 DB 2A C4
-@FFFE
-D6 D5
-q
index 4207d21..1c2bd24 100644 (file)
 @1800
-10 00 04 00 51 55 40 1F 05 00 18 00 B4 DC 8A D2
-2C 01 7B 30 FC C7 0E C8
+10 00 04 00 51 55 40 1F 05 00 18 00 56 DA D0 D0
+2D 01 6B 30 B6 C6 C8 C6
 @C400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C4
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C4 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C4 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C4 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C4 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C4 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C4 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C4 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C4 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C5 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C4 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C5 02 31 2D 00
-1E 83 30 4D D8 C4 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C5
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C5 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C5 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C4 01 3E 3E 8F F4 3B EB 37 0E C5 02 42 4C 00
-85 12 20 00 AC C5 04 42 41 53 45 00 85 12 DC 21
-C8 C4 05 53 54 41 54 45 85 12 BE 21 96 C5 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 C5 06 55 4D 2F
-4D 4F 44 00 30 12 62 C4 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C4 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C5
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 C5 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 C6
-02 23 53 00 87 12 32 C6 6A C6 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C6 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C5 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C5
-02 44 2E 00 87 12 D2 C5 44 C4 B0 C4 4C C5 64 C6
-BC C4 A2 C6 7E C6 14 C9 DC C8 2A C4 DC C5 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C4
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C6 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 C4
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A C6
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C6 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C6 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C5 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C7 03 4B 45 59 30 40 A0 C7
-18 42 0C 05 2F 83 8F 4E 00 00 B0 12 FC C7 92 B3
-1C 05 FD 27 1E 42 0C 05 B0 12 0E C8 30 4D 00 C7
-06 41 43 43 45 50 54 00 3C 40 6A C8 3B 40 34 C8
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C8 92 B3 1C 05 05 24 18 42 0C 05 38 90
-0A 00 04 20 21 53 39 40 22 C8 4D 15 A2 B3 1C 05
-FD 27 B2 40 11 00 0E 05 E2 C2 22 02 30 41 B2 40
-13 00 0E 05 E2 D2 22 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C8 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 0C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 1C 05 FD 27 82 48 0E 05 30 4D 60 C8
-2D 83 92 B3 1C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C6 04 45 4D 49 54 00 30 40 8C C8 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 C8 04 45 43 48
-4F 00 B2 40 82 48 58 C8 82 43 DE 21 30 4D E0 C6
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C8 92 43
-DE 21 30 4D 9C C6 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C8 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C8 EF 3F 00 C9
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C7 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C9 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C9 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C7 02 43
-52 00 30 40 46 C9 87 12 52 C9 02 0D 0A 00 14 C9
-2A C4 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C8 82 53 22 00 82 43 B4 21
-87 12 34 C4 52 C9 C8 CB 34 C4 22 00 B6 C9 80 C9
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 C8 82 2E
-22 00 87 12 6C C9 34 C4 14 C9 C8 CB 2A C4 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C4
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C4
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C4
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C4 02 3E 52 00 0E 12 3E 4F 30 4D 70 C4 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C4 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C4 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C4
+01 21 BE 4F 00 00 3E 4F 30 4D CC C4 02 30 3D 00
+1E 83 0E 7E 30 4D FC C4 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C5 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 C5 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 C5 02 23 53 00 87 12 88 C5 C0 C5
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C5
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C4 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C5 34 C4 86 C4 D4 C4 BA C5
+92 C4 F8 C5 D4 C5 D6 C7 42 CB 82 C7 2A C4 22 C5
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C5 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C6 18 42 0C 05 2F 83 8F 4E
+00 00 B0 12 B6 C6 92 B3 1C 05 FD 27 1E 42 0C 05
+B0 12 C8 C6 30 4D A2 B3 1C 05 FD 27 B2 40 11 00
+0E 05 E2 C2 22 02 30 41 B2 40 13 00 0E 05 E2 D2
+22 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C6
+B0 12 B6 C6 12 D2 0A 18 F9 3F F0 C4 06 41 43 43
+45 50 54 00 3C 40 64 C7 3B 40 2E C7 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C7
+92 B3 1C 05 05 24 18 42 0C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 0C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 82 48 0E 05 30 4D 5A C7 2D 83 92 B3 1C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C4 04 45 4D 49
+54 00 30 40 86 C7 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C C7 04 45 43 48 4F 00 B2 40 82 48
+52 C7 82 43 DE 21 30 4D 32 C6 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C7 92 43 DE 21 30 4D 20 C6
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C7
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C7 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C5
+02 43 52 00 30 40 08 C8 87 12 1E C8 02 0D 0A 00
+D6 C7 2A C4 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C5 82 53 22 00 82 43 B4 21 87 12 14 C8
+1E C8 B0 CA 14 C8 22 00 80 C8 4C C8 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA C7 82 2E 22 00 87 12 38 C8 14 C8 D6 C7
+B0 CA 2A C4 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,300 +86,280 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C4 34 40 00 C4 30 4D A2 C5 07 3E
+00 00 35 40 0E C4 34 40 00 C4 30 4D 82 C4 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 CB 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 CB 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C5
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C8 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C5 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 CB 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 C4 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C9 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A CC B0 C5
-B6 C9 44 CC 3D 40 4C CC E2 22 5D 3E 4E CC 0A 4E
-3E 4F 3D 40 64 CC 39 27 3D 40 3E CC 1A E2 BE 21
-B3 27 AD 23 66 CC 3E 4F 3D 40 3E CC BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CF
-CD 3F B6 CB 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A C4 3A CC
-A2 CC B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C C5 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 C9 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 C9 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E C5 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E C6 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 C4 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC C6 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 C7 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE CA 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 C8 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 C8 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 CB 42 CB 80 C8 50 CB
+3D 40 58 CB CC 22 82 3E 5A CB 0A 4E 3E 4F 3D 40
+70 CB 23 27 3D 40 4A CB 1A E2 BE 21 A1 27 B5 23
+72 CB 3E 4F 3D 40 4A CB B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 CE CB 3F D2 CA
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A C4 46 CB AE CB B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 C5 04 51 55 49 54 00 82 43 08 18 31 40
 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A C4
-42 C9 92 C8 DC C8 3A CC DE C4 70 C5 52 C9 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CD 34 C4
-30 FF F2 C6 8A C5 52 C9 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CD 24 C7 D0 CC C0 C7 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C CD 86 41 42 4F 52 54
-22 00 87 12 6C C9 34 C4 2E CD C8 CB 2A C4 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D4 B0 12
-FC C7 92 C3 1C 05 38 40 50 55 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 1C 05 F2 23 87 12
-6A D4 34 C4 DE 21 F2 C4 B2 C8 52 C9 04 1B 5B 37
-6D 00 14 C9 54 C4 28 C7 8A CD 42 C9 52 C9 05 6C
-69 6E 65 3A 14 C9 40 C5 D2 C6 14 C9 52 C9 04 1B
-5B 30 6D 00 14 C9 12 CD 00 00 83 5B 27 5D 87 12
-B0 CD 34 C4 34 C4 C8 CB C8 CB 2A C4 08 CA 01 27
-87 12 B0 C5 B6 C9 0E CA 28 C7 BE CD 2A C4 6E CC
-CE C5 81 5C 92 42 C0 21 C4 21 30 4D 9A CD 81 5B
-82 43 BE 21 30 4D C2 CD 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C7 82 49 53 00 87 12
-C8 C5 F2 C4 28 C7 02 CE 9E CD 34 C4 E0 CD C8 CB
-2A C4 B0 CD E0 CD 2A C4 EA CD 09 49 4D 4D 45 44
+04 C8 8C C7 42 CB 82 C7 46 CB A4 C4 0C C5 1E C8
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 CC
+14 C8 30 FF A0 CA 26 C5 1E C8 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 CC 3C C6 E0 CB C2 CA 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E CC 86 41 42 4F
+52 54 22 00 87 12 38 C8 14 C8 40 CC B0 CA 2A C4
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 D1
+B0 12 B6 C6 92 C3 1C 05 38 40 50 55 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 1C 05 F3 23 87 12
+42 D1 14 C8 DE 21 EA C4 AC C7 1E C8 04 1B 5B 37
+6D 00 D6 C7 58 C4 40 C6 9A CC 04 C8 1E C8 05 6C
+69 6E 65 3A D6 C7 D0 C4 24 C6 D6 C7 1E C8 04 1B
+5B 30 6D 00 D6 C7 24 CC 00 00 83 5B 27 5D 87 12
+C0 CC 14 C8 14 C8 B0 CA B0 CA 2A C4 E8 C8 01 27
+87 12 42 CB 80 C8 EE C8 40 C6 CE CC 2A C4 7A CB
+32 C5 81 5C 92 42 C0 21 C4 21 30 4D AA CC 81 5B
+82 43 BE 21 30 4D D2 CC 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A CA 82 49 53 00 87 12
+BE CB EA C4 40 C6 12 CD AE CC 14 C8 F0 CC B0 CA
+2A C4 C0 CC F0 CC 2A C4 FA CC 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 C9 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 CC 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C5 B6 C9 0E CA 54 C4
-28 C7 BE CD 70 C5 28 C7 66 CE 34 C4 34 C4 C8 CB
-C8 CB 34 C4 C8 CB C8 CB 2A C4 CE CD 81 3B 82 93
-BE 21 A8 27 87 12 34 C4 2A C4 C8 CB 04 CF D0 CD
-2A C4 6C CE 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CE BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 CE 01 3A 30 12 A4 CE
-87 12 92 C9 B0 C5 B6 C9 CA CE 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CE 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C9
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CD B0 C9 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CE BA 40 86 12 FC FF E4 3F 16 CC 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CE BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CF 06 43 52 45 41 54
-45 00 B0 12 C0 CE BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CC 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CF 05 44
-45 46 45 52 30 12 12 CF 8B 3F 6E CA 05 3E 42 4F
-44 59 2E 52 30 4D 6A CF 04 43 4F 44 45 00 B0 12
-C0 CE 2A 82 82 4A C6 21 87 12 B2 CE 94 D2 66 D2
-2A C4 B8 CF 07 43 4F 44 45 4E 4E 4D 87 12 8C CE
-D0 CD C2 CF 2A C4 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D2 04 CF 2A C4 1A CD 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A D2 DA 21 D9 3F E8 CF 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE D2 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A C4 02 00 A2 52 C6 21 ED 3F 0A CE 85 48 49 32
-4C 4F 87 12 F2 C6 8C D0 C8 CB D0 CD 94 D2 66 D2
-2A C4 5C D0 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 C7 00 00 2E 53 30 4D
-9E CF 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 C7 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C9 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 CF 85 42 45 47 49 4E 30 40 F2 C6 B2 D0
-85 55 4E 54 49 4C 39 40 28 C7 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CF
-85 41 47 41 49 4E 39 40 24 C7 EF 3F 34 CF 85 57
-48 49 4C 45 87 12 78 D0 78 C4 2A C4 22 CE 86 52
-45 50 45 41 54 00 87 12 F6 D0 B8 D0 2A C4 92 D0
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C C7 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA CB 84 4C 4F 4F 50 00 39 40
-5E C7 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C7 85 2B 4C 4F
-4F 50 39 40 4C C7 E5 3F 48 D1 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E C7 00 00 BA 40 24 C7 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A D1 04 4D 4F 56 45 00 0A 4E
+C4 CB 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 CB
+80 C8 EE C8 58 C4 40 C6 CE CC 0C C5 40 C6 5C CD
+14 C8 14 C8 B0 CA B0 CA 14 C8 B0 CA B0 CA 2A C4
+DE CC 81 3B 82 93 BE 21 B5 27 87 12 14 C8 2A C4
+B0 CA FA CD E0 CC 2A C4 62 CD 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 CD 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A CD 01 3A 30 12 A0 CD 92 B3 C6 21 A2 63 C6 21
+87 12 42 CB 80 C8 C8 CD 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E C8 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C CC 90 CB 05 44 45 46 45 52
+B0 12 B8 CD BA 40 30 40 FC FF BA 40 AE CD FE FF
+E3 3F 1E CB 06 43 52 45 41 54 45 00 B0 12 B8 CD
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A CE 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E C9 05 3E 42 4F 44 59 2E 52
+30 4D 44 CE 04 43 4F 44 45 00 B0 12 B8 CD A2 82
+C6 21 87 12 D2 D0 AC D0 2A C4 84 CE 07 43 4F 44
+45 4E 4E 4D B0 12 86 CD F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 D0 FA CD 2A C4 2C CC 03 41
+53 4D B2 40 B0 D0 DA 21 E0 3F AC CE 06 45 4E 44
+41 53 4D 00 87 12 B4 CE F4 D0 2A C4 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 D0 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A C4
+02 00 A2 52 C6 21 ED 3F 1A CD 85 48 49 32 4C 4F
+87 12 A0 CA 4A CF B0 CA E0 CC D2 D0 AC D0 2A C4
+1A CF 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 C6 00 00 2E 53 30 4D 5E CE
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C C6 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 C7
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C CE 85 42 45 47 49 4E 30 40 A0 CA 70 CF 85 55
+4E 54 49 4C 39 40 40 C6 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE CE 85 41
+47 41 49 4E 39 40 3C C6 EF 3F 7A C8 85 57 48 49
+4C 45 87 12 36 CF 76 C4 2A C4 34 C8 86 52 45 50
+45 41 54 00 87 12 B4 CF 76 CF 2A C4 50 CF 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 C6 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 CA 84 4C 4F 4F 50 00 39 40 76 C6
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 C6 85 2B 4C 4F 4F 50
+39 40 64 C6 E5 3F 06 D0 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE D0
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CF
-34 C4 10 00 34 C4 00 00 3C C7 34 C4 00 00 C8 CB
-5E C7 0A D2 F2 C6 34 C4 C8 21 44 C4 F2 C4 C8 CB
-FA C4 8A CF 34 C4 CA 21 FA C4 2A C4 AE CD 05 46
-4F 52 54 48 84 12 24 D2 8E D2 C4 D5 CC D2 2E D2
-74 D0 7C D1 F8 D3 BE D2 8E D4 A8 D4 D0 D0 34 D5
-00 00 CC D3 D8 CD AC CF 00 00 F0 D0 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D2 9E DB 06 DC 52 DB
-70 DC 18 DB 94 DC 44 D8 00 00 0E DB BE DB 70 DB
-AE DB 54 D9 00 00 00 00 A2 DC 58 D2 5C D2 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C CE 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E C9 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 D1 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 D0 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CE 86 5B 54 48 45 4E 5D 00 30 4D 14 D3
-86 5B 45 4C 53 45 5D 00 87 12 34 C4 00 00 36 C5
-B0 C5 B6 C9 1C CC 44 C4 28 C7 8E D3 8A C4 8A C4
-52 C9 06 5B 54 48 45 4E 5D 00 EA D2 32 C7 5C D3
-36 C9 40 C5 54 C4 32 C7 30 D3 2A C4 8A C4 8A C4
-52 C9 06 5B 45 4C 53 45 5D 00 EA D2 32 C7 7C D3
-36 C9 40 C5 54 C4 32 C7 2E D3 2A C4 52 C9 04 5B
-49 46 5D 00 EA D2 32 C7 30 D3 24 C7 2E D3 36 C9
-52 C9 05 0D 0A 6B 6F 20 14 C9 92 C8 2A CC 24 C7
-30 D3 20 D3 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D3 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C5 B6 C9 0E CA 6C C4 2A C4 B4 D3 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C5 B6 C9 0E CA
-6C C4 64 C5 2A C4 E8 D3 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 D1 06 4D 41 52 4B 45 52 00
-B0 12 C0 CE BA 40 84 12 FC FF BA 40 E6 D3 FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A CF 34 D2 C4 D2 D8 D2 2C D4 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D2
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D4 8A D2
-B4 DC 0E D1 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D4 92 42 0C 18 70 D4 EF 3F 60 D4 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E D4 92 42
-C6 21 70 D4 30 4D 74 D4 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 D1 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C8 24 C8 B2 40 3E D5 3C D5
-B2 40 8A D2 0E 18 B2 40 B4 DC 0C 18 30 12 7E D4
-B2 40 8C C8 8A C8 B2 40 46 C9 44 C9 B2 40 A0 C7
-9E C7 B2 40 18 00 0A 18 37 40 1A C4 36 40 BC C4
-35 40 0E C4 34 40 00 C4 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 D4 04 57 41 52 4D 00 30 40 3E D5 3D 40
-74 D5 92 C3 30 01 1E 42 08 18 0E 93 12 24 F2 B0
-10 00 00 02 02 20 3E E3 1E 53 F2 D0 30 00 0A 02
-3E 90 0A 00 B1 27 3E 90 16 00 AE 2F 2E 93 7D 27
-86 2F 30 4D 52 C9 06 0D 1B 5B 37 6D 23 00 14 C9
-E2 C6 52 C9 1F 46 61 73 74 46 6F 72 74 68 20 56
-33 30 30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72
-65 6E 73 20 14 C9 34 C4 80 FF F2 C6 28 C5 D2 C6
-52 C9 0B 62 79 74 65 73 20 66 72 65 65 20 24 C7
-8A CD E2 D2 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
-B2 40 04 A5 20 01 B2 40 88 5A CC 01 B2 43 02 02
-B2 D3 06 02 D2 43 24 02 F2 D3 26 02 F2 40 FD 00
-22 02 E2 D2 24 02 B2 40 00 A5 60 01 B2 40 F3 00
-80 01 B2 40 07 00 82 01 B2 40 FC 00 84 01 39 40
-80 00 B2 D0 10 00 86 01 92 D2 5E 01 08 18 38 40
-59 14 18 83 FE 23 19 83 FA 23 39 40 00 10 29 83
-89 43 00 20 FC 23 39 40 26 00 29 83 B9 40 D6 D5
-DA FF FB 23 B2 40 2C C8 E4 FF B2 40 81 00 00 05
-92 42 02 18 06 05 92 42 04 18 08 05 92 C3 00 05
-92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12 3A D5
-48 3F 38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21
-09 9A 03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A
-C4 21 30 4D 1C 15 B0 12 2A C4 B6 C9 0E CA 32 C7
-AA D6 CA CA 28 C7 BE CD CC D6 AC D6 29 4E 39 90
-86 12 02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E
-02 00 04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41
-3E 40 28 00 B0 12 94 D6 19 42 C6 21 A2 53 C6 21
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 C8
+CA 21 F2 C4 2A C4 84 12 7E D0 AE CF 3C D3 DE CF
+BE CC 32 CF 3A D0 50 D4 64 C8 66 D1 80 D1 8E CF
+00 D2 00 00 22 D4 E8 CC 78 CE 00 00 84 12 7E D0
+6E D9 D0 D9 22 D9 44 DA E8 D8 00 00 18 D6 00 00
+DE D8 8E D9 40 D9 7E D9 28 D7 00 00 00 00 20 DA
+AA D0 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 D0 EE D0
+F4 D0 04 D1 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 CD 09 50 57 52 5F 53 54 41
+54 45 84 12 FC D0 D0 D0 56 DA CC CF 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 D1 92 42 0C 18
+48 D1 EF 3F 38 D1 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 D1 92 42 C6 21 48 D1 30 4D 4C D1
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC CF 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 C6
+DE C6 B2 40 0A D2 08 D2 B2 40 D0 D0 0E 18 B2 40
+56 DA 0C 18 30 12 56 D1 B2 40 86 C7 84 C7 B2 40
+08 C8 06 C8 B2 40 98 C6 96 C6 B2 40 18 00 0A 18
+37 40 1A C4 36 40 92 C4 35 40 0E C4 34 40 00 C4
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A D1
+04 57 41 52 4D 00 30 40 0A D2 3D 40 40 D2 92 C3
+30 01 1E 42 08 18 0E 93 12 24 F2 B0 10 00 00 02
+02 20 3E E3 1E 53 F2 D0 30 00 0A 02 3E 90 0A 00
+B7 27 3E 90 16 00 B4 2F 2E 93 83 27 8C 2F 30 4D
+1E C8 06 0D 1B 5B 37 6D 23 00 D6 C7 34 C6 1E C8
+19 46 61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D
+2E 54 68 6F 6F 72 65 6E 73 20 D6 C7 14 C8 30 FF
+A0 CA B8 C4 24 C6 1E C8 0A 62 79 74 65 73 20 66
+72 65 65 00 3C C6 9A CC 82 CF 04 43 4F 4C 44 00
+92 B3 0A 05 FD 23 B2 40 04 A5 20 01 40 D2 B2 40
+88 5A CC 01 B2 43 02 02 B2 D3 06 02 D2 43 24 02
+F2 D3 26 02 F2 40 FD 00 22 02 E2 D2 24 02 B2 40
+00 A5 60 01 B2 40 F3 00 80 01 B2 40 07 00 82 01
+B2 40 FC 00 84 01 39 40 80 00 B2 D0 10 00 86 01
+92 D2 5E 01 08 18 38 40 59 14 18 83 FE 23 19 83
+FA 23 39 40 00 10 29 83 89 43 00 20 FC 23 39 40
+26 00 29 83 B9 40 9E D2 DA FF FB 23 B2 40 26 C7
+E4 FF B2 40 81 00 00 05 92 42 02 18 06 05 92 42
+04 18 08 05 92 C3 00 05 92 D3 1A 05 3F 40 80 20
+31 40 E0 20 30 12 06 D2 50 3F 8A D2 07 43 4F 4D
+50 41 52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
+0C 24 1B 83 07 30 1C 83 07 30 19 53 F9 98 FF FF
+F5 27 02 2C 3E 43 30 4D 1E 43 30 4D B2 CD 86 5B
+54 48 45 4E 5D 00 30 4D 6E D3 86 5B 45 4C 53 45
+5D 00 87 12 14 C8 00 00 C6 C4 42 CB 80 C8 24 CB
+34 C4 40 C6 E4 D3 44 C4 1E C8 06 5B 54 48 45 4E
+5D 00 44 D3 4A C6 B4 D3 F8 C7 D0 C4 58 C4 4A C6
+8A D3 2A C4 44 C4 1E C8 06 5B 45 4C 53 45 5D 00
+44 D3 4A C6 D2 D3 F8 C7 D0 C4 58 C4 4A C6 88 D3
+2A C4 1E C8 04 5B 49 46 5D 00 44 D3 4A C6 8A D3
+3C C6 88 D3 F8 C7 1E C8 05 0D 0A 6B 6F 20 D6 C7
+8C C7 32 CB 3C C6 8A D3 7A D3 84 5B 49 46 5D 00
+0E 93 3E 4F BE 27 30 4D FA D3 89 5B 44 45 46 49
+4E 45 44 5D 87 12 42 CB 80 C8 EE C8 6A C4 2A C4
+0A D4 8B 5B 55 4E 44 45 46 49 4E 45 44 5D 87 12
+42 CB 80 C8 EE C8 6A C4 00 C5 2A C4 3E D4 3D 41
+B2 4E 0E 18 A2 4E 0C 18 3E 4F 30 40 56 D1 48 D0
+06 4D 41 52 4B 45 52 00 B0 12 B8 CD BA 40 84 12
+FC FF BA 40 3C D4 FE FF 9A 42 C8 21 00 00 28 83
+8A 48 02 00 A2 52 C6 21 30 40 00 CE 1C 15 B0 12
+2A C4 80 C8 EE C8 4A C6 92 D4 AA C9 40 C6 CE CC
+AC D4 94 D4 39 4E 39 80 86 12 08 24 19 53 02 20
+2E 4E 04 3C 2E 53 19 53 01 24 2E 82 1B 17 30 41
+3E 40 28 00 B0 12 7C D4 19 42 C6 21 A2 53 C6 21
 89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53
-C4 21 B0 12 2A C4 B6 C9 CA CA 28 C7 0A D7 00 D7
-21 53 3E 90 10 00 83 2D E1 2B 0C D7 B2 41 C4 21
-DD 3F 87 12 B0 C5 72 D6 1A D7 0C 43 1B 42 C6 21
-A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53
-C4 21 B0 12 94 D6 0E 93 03 20 3C 40 00 03 21 3C
-1E 93 03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40
-20 03 17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92
-03 20 3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03
-08 3C 3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40
-10 02 92 53 C4 21 B0 12 94 D6 ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 21 B0 12 E8 D6 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 E8 D6 92 92 C0 21
-C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12
-E8 D6 FA 23 3C 50 10 00 B0 12 D0 D6 EF 3F 0C 43
-1B 42 C6 21 A2 53 C6 21 87 12 B0 C5 72 D6 F0 D7
-FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
-C8 3F B0 12 E8 D6 E1 23 3C 50 80 00 B0 12 D0 D6
-DC 3F 1C C8 04 52 45 54 49 00 87 12 34 C4 00 13
-C8 CB 2A C4 34 C4 2C 00 12 D7 E8 D7 2E D8 2E 4E
-0E DC 09 4B A4 3F 3E D0 03 4D 4F 56 84 12 24 D8
-00 40 38 D8 05 4D 4F 56 2E 42 84 12 24 D8 40 40
-00 00 03 41 44 44 84 12 24 D8 00 50 52 D8 05 41
-44 44 2E 42 84 12 24 D8 40 50 5E D8 04 41 44 44
-43 00 84 12 24 D8 00 60 6C D8 06 41 44 44 43 2E
-42 00 84 12 24 D8 40 60 14 D8 04 53 55 42 43 00
-84 12 24 D8 00 70 8A D8 06 53 55 42 43 2E 42 00
-84 12 24 D8 40 70 98 D8 03 53 55 42 84 12 24 D8
-00 80 A8 D8 05 53 55 42 2E 42 84 12 24 D8 40 80
-20 D0 03 43 4D 50 84 12 24 D8 00 90 C2 D8 05 43
-4D 50 2E 42 84 12 24 D8 40 90 0E D0 04 44 41 44
-44 00 84 12 24 D8 00 A0 DC D8 06 44 41 44 44 2E
-42 00 84 12 24 D8 40 A0 CE D8 03 42 49 54 84 12
-24 D8 00 B0 FA D8 05 42 49 54 2E 42 84 12 24 D8
-40 B0 06 D9 03 42 49 43 84 12 24 D8 00 C0 14 D9
-05 42 49 43 2E 42 84 12 24 D8 40 C0 20 D9 03 42
-49 53 84 12 24 D8 00 D0 2E D9 05 42 49 53 2E 42
-84 12 24 D8 40 D0 00 00 03 58 4F 52 84 12 24 D8
-00 E0 48 D9 05 58 4F 52 2E 42 84 12 24 D8 40 E0
-7A D8 03 41 4E 44 84 12 24 D8 00 F0 62 D9 05 41
-4E 44 2E 42 84 12 24 D8 40 F0 B0 C5 12 D7 80 D9
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-B4 D8 03 52 52 43 84 12 7A D9 00 10 92 D9 05 52
-52 43 2E 42 84 12 7A D9 40 10 9E D9 04 53 57 50
-42 00 84 12 7A D9 80 10 AC D9 03 52 52 41 84 12
-7A D9 00 11 BA D9 05 52 52 41 2E 42 84 12 7A D9
-40 11 C6 D9 03 53 58 54 84 12 7A D9 80 11 00 00
-04 50 55 53 48 00 84 12 7A D9 00 12 E0 D9 06 50
-55 53 48 2E 42 00 84 12 7A D9 40 12 3A D9 04 43
-41 4C 4C 00 84 12 7A D9 80 12 1A 53 0E 4A 87 12
-E2 C6 52 C9 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 3A CD B0 C5 72 D6 2A DA 92 53 C4 21 3E 40
-2C 00 B0 12 2A C4 B6 C9 CA CA 28 C7 BE CD DE D7
-42 DA 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F
-5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F D4 D9
-04 52 52 43 4D 00 84 12 24 DA 50 00 70 DA 04 52
-52 41 4D 00 84 12 24 DA 50 01 7E DA 04 52 4C 41
-4D 00 84 12 24 DA 50 02 8C DA 04 52 52 55 4D 00
-84 12 24 DA 50 03 EE D9 05 50 55 53 48 4D 84 12
-24 DA 00 15 A8 DA 04 50 4F 50 4D 00 84 12 24 DA
-00 17 85 12 00 3C 9A DA 03 53 3E 3D 85 12 00 38
-C8 DA 02 53 3C 00 85 12 00 34 B6 DA 03 30 3E 3D
-85 12 00 30 DC DA 02 30 3C 00 85 12 00 30 00 00
-02 55 3C 00 85 12 00 2C F0 DA 03 55 3E 3D 85 12
-00 28 E6 DA 03 30 3C 3E 85 12 00 24 04 DB 02 30
+C4 21 B0 12 2A C4 80 C8 AA C9 40 C6 EA D4 E0 D4
+21 53 3E 90 10 00 7D 2D E1 2B EC D4 B2 41 C4 21
+DD 3F 87 12 42 CB 74 C8 FA D4 0C 43 1B 42 C6 21
+A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 27 20 92 53
+C4 21 B0 12 7C D4 3C 40 00 03 0E 93 1C 24 3C 40
+10 03 1E 93 18 24 3C 40 20 03 2E 93 14 24 3C 40
+20 02 2E 92 10 24 3C 40 30 02 3E 92 0C 24 3C 40
+30 03 3E 93 08 24 3C 40 30 00 19 42 C6 21 A2 53
+C6 21 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00
+07 20 3C 40 10 02 92 53 C4 21 B0 12 7C D4 ED 3F
+7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12
+C8 D4 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 C8 D4
+92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E
+DA 3F B0 12 C8 D4 FA 23 3C 50 10 00 B0 12 B0 D4
+EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 87 12 42 CB
+74 C8 C4 D5 FE 90 26 00 00 00 3E 40 20 00 03 20
+3C 50 82 00 C8 3F B0 12 C8 D4 E1 23 3C 50 80 00
+B0 12 B0 D4 DC 3F D6 C6 04 52 45 54 49 00 87 12
+14 C8 00 13 B0 CA 2A C4 14 C8 2C 00 F2 D4 BC D5
+02 D6 09 4B 2E 4E 0E DC A4 3F FC CE 03 4D 4F 56
+84 12 F8 D5 00 40 0C D6 05 4D 4F 56 2E 42 84 12
+F8 D5 40 40 00 00 03 41 44 44 84 12 F8 D5 00 50
+26 D6 05 41 44 44 2E 42 84 12 F8 D5 40 50 32 D6
+04 41 44 44 43 00 84 12 F8 D5 00 60 40 D6 06 41
+44 44 43 2E 42 00 84 12 F8 D5 40 60 E8 D5 04 53
+55 42 43 00 84 12 F8 D5 00 70 5E D6 06 53 55 42
+43 2E 42 00 84 12 F8 D5 40 70 6C D6 03 53 55 42
+84 12 F8 D5 00 80 7C D6 05 53 55 42 2E 42 84 12
+F8 D5 40 80 DE CE 03 43 4D 50 84 12 F8 D5 00 90
+96 D6 05 43 4D 50 2E 42 84 12 F8 D5 40 90 CC CE
+04 44 41 44 44 00 84 12 F8 D5 00 A0 B0 D6 06 44
+41 44 44 2E 42 00 84 12 F8 D5 40 A0 A2 D6 03 42
+49 54 84 12 F8 D5 00 B0 CE D6 05 42 49 54 2E 42
+84 12 F8 D5 40 B0 DA D6 03 42 49 43 84 12 F8 D5
+00 C0 E8 D6 05 42 49 43 2E 42 84 12 F8 D5 40 C0
+F4 D6 03 42 49 53 84 12 F8 D5 00 D0 02 D7 05 42
+49 53 2E 42 84 12 F8 D5 40 D0 00 00 03 58 4F 52
+84 12 F8 D5 00 E0 1C D7 05 58 4F 52 2E 42 84 12
+F8 D5 40 E0 4E D6 03 41 4E 44 84 12 F8 D5 00 F0
+36 D7 05 41 4E 44 2E 42 84 12 F8 D5 40 F0 42 CB
+F2 D4 54 D7 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
+0C DA 4F 3F 88 D6 03 52 52 43 84 12 4E D7 00 10
+66 D7 05 52 52 43 2E 42 84 12 4E D7 40 10 72 D7
+04 53 57 50 42 00 84 12 4E D7 80 10 80 D7 03 52
+52 41 84 12 4E D7 00 11 8E D7 05 52 52 41 2E 42
+84 12 4E D7 40 11 9A D7 03 53 58 54 84 12 4E D7
+80 11 00 00 04 50 55 53 48 00 84 12 4E D7 00 12
+B4 D7 06 50 55 53 48 2E 42 00 84 12 4E D7 40 12
+0E D7 04 43 41 4C 4C 00 84 12 4E D7 80 12 1A 53
+0E 4A 87 12 34 C6 1E C8 0D 6F 75 74 20 6F 66 20
+62 6F 75 6E 64 73 4C CC 42 CB 74 C8 FE D7 92 53
+C4 21 3E 40 2C 00 B0 12 2A C4 80 C8 AA C9 40 C6
+CE CC B2 D5 16 D8 0A 4E 3E 4F 1A 83 E0 33 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06
+8F 3F A8 D7 04 52 52 43 4D 00 84 12 F8 D7 50 00
+44 D8 04 52 52 41 4D 00 84 12 F8 D7 50 01 52 D8
+04 52 4C 41 4D 00 84 12 F8 D7 50 02 60 D8 04 52
+52 55 4D 00 84 12 F8 D7 50 03 C2 D7 05 50 55 53
+48 4D 84 12 F8 D7 00 15 7C D8 04 50 4F 50 4D 00
+84 12 F8 D7 00 17 6E D8 03 53 3E 3D 85 12 00 38
+98 D8 02 53 3C 00 85 12 00 34 8A D8 03 30 3E 3D
+85 12 00 30 AC D8 02 30 3C 00 85 12 00 30 00 00
+02 55 3C 00 85 12 00 2C C0 D8 03 55 3E 3D 85 12
+00 28 B6 D8 03 30 3C 3E 85 12 00 24 D4 D8 02 30
 3D 00 85 12 00 20 00 00 02 49 46 00 1A 42 C6 21
-8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D FA DA 04 54
+8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D CA D8 04 54
 48 45 4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53
-0A 89 0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D
-EA D8 04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C
-00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 2E DB
+0A 89 0A 11 3A 90 00 02 63 2F 88 DA 00 00 30 4D
+BE D6 04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C
+00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F FE D8
 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21
-2A 83 0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 21 30 4D 6E D9 05 41
-47 41 49 4E 87 12 C2 DA 76 DB 2A C4 00 00 05 57
-48 49 4C 45 87 12 1C DB 78 C4 2A C4 D2 DA 06 52
-45 50 45 41 54 00 87 12 C2 DA 76 DB 34 DB 2A C4
-D2 DB 3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43
-00 00 CA 23 98 42 C6 21 00 00 30 4D FE D9 03 42
-57 31 84 12 D0 DB E0 21 EE DB 03 42 57 32 84 12
-D0 DB E2 21 FA DB 03 42 57 33 84 12 D0 DB E4 21
-12 DC 3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43
-00 00 8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 84 12 10 DC E6 21
-36 DC 03 46 57 32 84 12 10 DC E8 21 42 DC 03 46
-57 33 84 12 10 DC EA 21 3E 90 00 30 07 24 3E E0
-00 04 3E B0 00 10 02 24 3E E0 00 08 30 4D 4E DC
-04 47 4F 54 4F 00 87 12 C2 DA B0 CD BE CB 2A C4
-00 00 05 3F 47 4F 54 4F 87 12 58 DC B0 CD BE CB
-2A C4 00 00 03 4A 4D 50 87 12 B0 CD A4 DB 2A C4
-82 DC 04 3F 4A 4D 50 00 87 12 58 DC B0 CD 78 C4
-76 DB 2A C4
+2A 83 0A 89 0A 11 3A 90 00 FE 42 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C6 21 30 4D 42 D7 05 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57
+48 49 4C 45 87 12 EC D8 76 C4 2A C4 A2 D8 06 52
+45 50 45 41 54 00 87 12 74 D9 04 D9 2A C4 A0 D9
+3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CD 2F 98 42
+C6 21 00 00 30 4D D2 D7 03 42 57 31 84 12 9E D9
+00 00 B8 D9 03 42 57 32 84 12 9E D9 00 00 C4 D9
+03 42 57 33 84 12 9E D9 00 00 DC D9 3D 41 1A 42
+C6 21 28 4E B2 92 C4 21 90 2B BA 4F 00 00 A2 53
+C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
+84 12 DA D9 00 00 FC D9 03 46 57 32 84 12 DA D9
+00 00 08 DA 03 46 57 33 84 12 DA D9 00 00 00 00
+05 3F 47 4F 54 4F 3E 90 00 30 07 24 3E E0 00 04
+3E B0 00 10 02 24 3E E0 00 08 87 12 C0 CC DA CA
+2A C4 14 DA 04 47 4F 54 4F 00 2F 83 8F 4E 00 00
+3E 40 00 3C F2 3F
 @FFFE
-D6 D5
+9E D2
 q
diff --git a/binaries/LP_MSP430FR2476_16MHz.txt b/binaries/LP_MSP430FR2476_16MHz.txt
new file mode 100644 (file)
index 0000000..66249a4
--- /dev/null
@@ -0,0 +1,366 @@
+@1800
+10 00 08 00 A1 F7 80 3E 05 00 18 00 6E 96 D0 8C
+2D 01 6B 30 B6 82 C8 82
+@8000
+2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
+8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 80
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 80
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 80
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 80 02 3E 52 00 0E 12 3E 4F 30 4D 70 80 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 80 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 80 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 80
+01 21 BE 4F 00 00 3E 4F 30 4D CC 80 02 30 3D 00
+1E 83 0E 7E 30 4D FC 80 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 81 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 81 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 81 02 23 53 00 87 12 88 81 C0 81
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 81
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 80 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 81 34 80 86 80 D4 80 BA 81
+92 80 F8 81 D4 81 D6 83 42 87 82 83 2A 80 22 81
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 81 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 82 18 42 0C 05 2F 83 8F 4E
+00 00 B0 12 B6 82 92 B3 1C 05 FD 27 1E 42 0C 05
+B0 12 C8 82 30 4D A2 B3 1C 05 FD 27 B2 40 11 00
+0E 05 E2 C3 43 02 30 41 B2 40 13 00 0E 05 E2 D3
+43 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 82
+B0 12 B6 82 12 D2 0A 18 F9 3F F0 80 06 41 43 43
+45 50 54 00 3C 40 64 83 3B 40 2E 83 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 83
+92 B3 1C 05 05 24 18 42 0C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 0C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 82 48 0E 05 30 4D 5A 83 2D 83 92 B3 1C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 80 04 45 4D 49
+54 00 30 40 86 83 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C 83 04 45 43 48 4F 00 B2 40 82 48
+52 83 82 43 DE 21 30 4D 32 82 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 83 92 43 DE 21 30 4D 20 82
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 83
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 83 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 81
+02 43 52 00 30 40 08 84 87 12 1E 84 02 0D 0A 00
+D6 83 2A 80 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 81 82 53 22 00 82 43 B4 21 87 12 14 84
+1E 84 B0 86 14 84 22 00 80 84 4C 84 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA 83 82 2E 22 00 87 12 38 84 14 84 D6 83
+B0 86 2A 80 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
+60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
+18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
+F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
+CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
+0C 4E 65 4C 74 40 80 00 3B 40 CA 21 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
+FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
+00 00 35 40 0E 80 34 40 00 80 30 4D 82 80 07 3E
+4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
+DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
+07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
+D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 85 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 85 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 81 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 82 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 80 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC 82 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 83 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 86 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 84 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 84 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 87 42 87 80 84 50 87
+3D 40 58 87 CC 22 82 3E 5A 87 0A 4E 3E 4F 3D 40
+70 87 23 27 3D 40 4A 87 1A E2 BE 21 A1 27 B5 23
+72 87 3E 4F 3D 40 4A 87 B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 8A CB 3F D2 86
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 80 46 87 AE 87 B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 81 04 51 55 49 54 00 82 43 08 18 31 40
+E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A 80
+04 84 8C 83 42 87 82 83 46 87 A4 80 0C 81 1E 84
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 88
+14 84 30 FF A0 86 26 81 1E 84 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 88 3C 82 E0 87 C2 86 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E 88 86 41 42 4F
+52 54 22 00 87 12 38 84 14 84 40 88 B0 86 2A 80
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 8D
+B0 12 B6 82 92 C3 1C 05 38 40 A0 AA 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 1C 05 F3 23 87 12
+42 8D 14 84 DE 21 EA 80 AC 83 1E 84 04 1B 5B 37
+6D 00 D6 83 58 80 40 82 9A 88 04 84 1E 84 05 6C
+69 6E 65 3A D6 83 D0 80 24 82 D6 83 1E 84 04 1B
+5B 30 6D 00 D6 83 24 88 00 00 83 5B 27 5D 87 12
+C0 88 14 84 14 84 B0 86 B0 86 2A 80 E8 84 01 27
+87 12 42 87 80 84 EE 84 40 82 CE 88 2A 80 7A 87
+32 81 81 5C 92 42 C0 21 C4 21 30 4D AA 88 81 5B
+82 43 BE 21 30 4D D2 88 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 86 82 49 53 00 87 12
+BE 87 EA 80 40 82 12 89 AE 88 14 84 F0 88 B0 86
+2A 80 C0 88 F0 88 2A 80 FA 88 09 49 4D 4D 45 44
+49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
+C4 87 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 87
+80 84 EE 84 58 80 40 82 CE 88 0C 81 40 82 5C 89
+14 84 14 84 B0 86 B0 86 14 84 B0 86 B0 86 2A 80
+DE 88 81 3B 82 93 BE 21 B5 27 87 12 14 84 2A 80
+B0 86 FA 89 E0 88 2A 80 62 89 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 89 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A 89 01 3A 30 12 A0 89 92 B3 C6 21 A2 63 C6 21
+87 12 42 87 80 84 C8 89 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 84 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 88 90 87 05 44 45 46 45 52
+B0 12 B8 89 BA 40 30 40 FC FF BA 40 AE 89 FE FF
+E3 3F 1E 87 06 43 52 45 41 54 45 00 B0 12 B8 89
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 8A 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 85 05 3E 42 4F 44 59 2E 52
+30 4D 44 8A 04 43 4F 44 45 00 B0 12 B8 89 A2 82
+C6 21 87 12 D2 8C AC 8C 2A 80 84 8A 07 43 4F 44
+45 4E 4E 4D B0 12 86 89 F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 8C FA 89 2A 80 2C 88 03 41
+53 4D B2 40 B0 8C DA 21 E0 3F AC 8A 06 45 4E 44
+41 53 4D 00 87 12 B4 8A F4 8C 2A 80 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 8C 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A 80
+02 00 A2 52 C6 21 ED 3F 1A 89 85 48 49 32 4C 4F
+87 12 A0 86 4A 8B B0 86 E0 88 D2 8C AC 8C 2A 80
+1A 8B 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 82 00 00 2E 53 30 4D 5E 8A
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C 82 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 83
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C 8A 85 42 45 47 49 4E 30 40 A0 86 70 8B 85 55
+4E 54 49 4C 39 40 40 82 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE 8A 85 41
+47 41 49 4E 39 40 3C 82 EF 3F 7A 84 85 57 48 49
+4C 45 87 12 36 8B 76 80 2A 80 34 84 86 52 45 50
+45 41 54 00 87 12 B4 8B 76 8B 2A 80 50 8B 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 82 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 86 84 4C 4F 4F 50 00 39 40 76 82
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 82 85 2B 4C 4F 4F 50
+39 40 64 82 E5 3F 06 8C 04 4D 4F 56 45 00 0A 4E
+38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
+F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 84
+CA 21 F2 80 2A 80 84 12 7E 8C AE 8B 54 8F DE 8B
+BE 88 32 8B 3A 8C 68 90 64 84 66 8D 80 8D 8E 8B
+00 8E 00 00 3A 90 E8 88 78 8A 00 00 84 12 7E 8C
+86 95 E8 95 3A 95 5C 96 00 95 00 00 30 92 00 00
+F6 94 A6 95 58 95 96 95 40 93 00 00 00 00 38 96
+AA 8C 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 8C EE 8C
+F4 8C 04 8D 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 89 09 50 57 52 5F 53 54 41
+54 45 84 12 FC 8C D0 8C 6E 96 CC 8B 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 8D 92 42 0C 18
+48 8D EF 3F 38 8D 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 8D 92 42 C6 21 48 8D 30 4D 4C 8D
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC 8B 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 82
+DE 82 B2 40 0A 8E 08 8E B2 40 D0 8C 0E 18 B2 40
+6E 96 0C 18 30 12 56 8D B2 40 86 83 84 83 B2 40
+08 84 06 84 B2 40 98 82 96 82 B2 40 18 00 0A 18
+37 40 1A 80 36 40 92 80 35 40 0E 80 34 40 00 80
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A 8D
+04 57 41 52 4D 00 30 40 0A 8E 3D 40 40 8E 92 C3
+30 01 1E 42 08 18 0E 93 12 24 F2 B0 10 00 00 02
+02 20 3E E3 1E 53 F2 D0 30 00 0A 02 3E 90 0A 00
+B7 27 3E 90 16 00 B4 2F 2E 93 83 27 8C 2F 30 4D
+1E 84 06 0D 1B 5B 37 6D 23 00 D6 83 34 82 1E 84
+19 46 61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D
+2E 54 68 6F 6F 72 65 6E 73 20 D6 83 14 84 30 FF
+A0 86 B8 80 24 82 1E 84 0A 62 79 74 65 73 20 66
+72 65 65 00 3C 82 9A 88 82 8B 04 43 4F 4C 44 00
+92 B3 0A 05 FD 23 B2 40 04 A5 20 01 40 8E B2 40
+88 5A CC 01 B2 D3 06 02 B2 40 FE FF 02 02 B2 D3
+26 02 B2 40 FF 7F 22 02 B2 D3 46 02 B2 40 FC FF
+42 02 E2 D3 45 02 F2 40 A5 00 A1 01 F2 40 10 00
+A0 01 D2 43 A1 01 B2 40 00 A5 60 01 B2 40 FF 1E
+80 01 B2 40 BA 00 82 01 B2 40 E8 01 84 01 39 40
+00 01 B2 D0 10 00 86 01 92 D2 5E 01 08 18 38 40
+59 14 18 83 FE 23 19 83 FA 23 39 40 00 20 29 83
+89 43 00 20 FC 23 39 40 38 00 29 83 B9 40 9E 8E
+8C FF FB 23 B2 40 26 83 E0 FF B2 40 81 00 00 05
+92 42 02 18 06 05 92 42 04 18 08 05 92 C3 00 05
+92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12 06 8E
+44 3F 8A 8E 07 43 4F 4D 50 41 52 45 0C 4E 38 4F
+3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83
+07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D
+1E 43 30 4D B2 89 86 5B 54 48 45 4E 5D 00 30 4D
+86 8F 86 5B 45 4C 53 45 5D 00 87 12 14 84 00 00
+C6 80 42 87 80 84 24 87 34 80 40 82 FC 8F 44 80
+1E 84 06 5B 54 48 45 4E 5D 00 5C 8F 4A 82 CC 8F
+F8 83 D0 80 58 80 4A 82 A2 8F 2A 80 44 80 1E 84
+06 5B 45 4C 53 45 5D 00 5C 8F 4A 82 EA 8F F8 83
+D0 80 58 80 4A 82 A0 8F 2A 80 1E 84 04 5B 49 46
+5D 00 5C 8F 4A 82 A2 8F 3C 82 A0 8F F8 83 1E 84
+05 0D 0A 6B 6F 20 D6 83 8C 83 32 87 3C 82 A2 8F
+92 8F 84 5B 49 46 5D 00 0E 93 3E 4F BE 27 30 4D
+12 90 89 5B 44 45 46 49 4E 45 44 5D 87 12 42 87
+80 84 EE 84 6A 80 2A 80 22 90 8B 5B 55 4E 44 45
+46 49 4E 45 44 5D 87 12 42 87 80 84 EE 84 6A 80
+00 81 2A 80 56 90 3D 41 B2 4E 0E 18 A2 4E 0C 18
+3E 4F 30 40 56 8D 48 8C 06 4D 41 52 4B 45 52 00
+B0 12 B8 89 BA 40 84 12 FC FF BA 40 54 90 FE FF
+9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
+30 40 00 8A 1C 15 B0 12 2A 80 80 84 EE 84 4A 82
+AA 90 AA 85 40 82 CE 88 C4 90 AC 90 39 4E 39 80
+86 12 08 24 19 53 02 20 2E 4E 04 3C 2E 53 19 53
+01 24 2E 82 1B 17 30 41 3E 40 28 00 B0 12 94 90
+19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00
+1C 15 12 12 C4 21 92 53 C4 21 B0 12 2A 80 80 84
+AA 85 40 82 02 91 F8 90 21 53 3E 90 10 00 7D 2D
+E1 2B 04 91 B2 41 C4 21 DD 3F 87 12 42 87 74 84
+12 91 0C 43 1B 42 C6 21 A2 53 C6 21 6A 4E 3E 4F
+7A 90 23 00 27 20 92 53 C4 21 B0 12 94 90 3C 40
+00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24 3C 40
+20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24 3C 40
+30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24 3C 40
+30 00 19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 4F
+3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02 92 53
+C4 21 B0 12 94 90 ED 3F 7A 90 40 00 16 20 3C 40
+20 00 92 53 C4 21 B0 12 E0 90 0C 20 3C 50 10 00
+3E 40 2B 00 B0 12 E0 90 92 92 C0 21 C4 21 02 24
+92 53 C4 21 8E 10 0C 5E DA 3F B0 12 E0 90 FA 23
+3C 50 10 00 B0 12 C8 90 EF 3F 0C 43 1B 42 C6 21
+A2 53 C6 21 87 12 42 87 74 84 DC 91 FE 90 26 00
+00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F B0 12
+E0 90 E1 23 3C 50 80 00 B0 12 C8 90 DC 3F D6 82
+04 52 45 54 49 00 87 12 14 84 00 13 B0 86 2A 80
+14 84 2C 00 0A 91 D4 91 1A 92 09 4B 2E 4E 0E DC
+A4 3F FC 8A 03 4D 4F 56 84 12 10 92 00 40 24 92
+05 4D 4F 56 2E 42 84 12 10 92 40 40 00 00 03 41
+44 44 84 12 10 92 00 50 3E 92 05 41 44 44 2E 42
+84 12 10 92 40 50 4A 92 04 41 44 44 43 00 84 12
+10 92 00 60 58 92 06 41 44 44 43 2E 42 00 84 12
+10 92 40 60 00 92 04 53 55 42 43 00 84 12 10 92
+00 70 76 92 06 53 55 42 43 2E 42 00 84 12 10 92
+40 70 84 92 03 53 55 42 84 12 10 92 00 80 94 92
+05 53 55 42 2E 42 84 12 10 92 40 80 DE 8A 03 43
+4D 50 84 12 10 92 00 90 AE 92 05 43 4D 50 2E 42
+84 12 10 92 40 90 CC 8A 04 44 41 44 44 00 84 12
+10 92 00 A0 C8 92 06 44 41 44 44 2E 42 00 84 12
+10 92 40 A0 BA 92 03 42 49 54 84 12 10 92 00 B0
+E6 92 05 42 49 54 2E 42 84 12 10 92 40 B0 F2 92
+03 42 49 43 84 12 10 92 00 C0 00 93 05 42 49 43
+2E 42 84 12 10 92 40 C0 0C 93 03 42 49 53 84 12
+10 92 00 D0 1A 93 05 42 49 53 2E 42 84 12 10 92
+40 D0 00 00 03 58 4F 52 84 12 10 92 00 E0 34 93
+05 58 4F 52 2E 42 84 12 10 92 40 E0 66 92 03 41
+4E 44 84 12 10 92 00 F0 4E 93 05 41 4E 44 2E 42
+84 12 10 92 40 F0 42 87 0A 91 6C 93 0A 4C 3C F0
+70 00 8A 10 3A F0 0F 00 0C DA 4F 3F A0 92 03 52
+52 43 84 12 66 93 00 10 7E 93 05 52 52 43 2E 42
+84 12 66 93 40 10 8A 93 04 53 57 50 42 00 84 12
+66 93 80 10 98 93 03 52 52 41 84 12 66 93 00 11
+A6 93 05 52 52 41 2E 42 84 12 66 93 40 11 B2 93
+03 53 58 54 84 12 66 93 80 11 00 00 04 50 55 53
+48 00 84 12 66 93 00 12 CC 93 06 50 55 53 48 2E
+42 00 84 12 66 93 40 12 26 93 04 43 41 4C 4C 00
+84 12 66 93 80 12 1A 53 0E 4A 87 12 34 82 1E 84
+0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 4C 88
+42 87 74 84 16 94 92 53 C4 21 3E 40 2C 00 B0 12
+2A 80 80 84 AA 85 40 82 CE 88 CA 91 2E 94 0A 4E
+3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A
+01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F
+2A 92 D1 2F 8A 10 5A 06 8F 3F C0 93 04 52 52 43
+4D 00 84 12 10 94 50 00 5C 94 04 52 52 41 4D 00
+84 12 10 94 50 01 6A 94 04 52 4C 41 4D 00 84 12
+10 94 50 02 78 94 04 52 52 55 4D 00 84 12 10 94
+50 03 DA 93 05 50 55 53 48 4D 84 12 10 94 00 15
+94 94 04 50 4F 50 4D 00 84 12 10 94 00 17 86 94
+03 53 3E 3D 85 12 00 38 B0 94 02 53 3C 00 85 12
+00 34 A2 94 03 30 3E 3D 85 12 00 30 C4 94 02 30
+3C 00 85 12 00 30 00 00 02 55 3C 00 85 12 00 2C
+D8 94 03 55 3E 3D 85 12 00 28 CE 94 03 30 3C 3E
+85 12 00 24 EC 94 02 30 3D 00 85 12 00 20 00 00
+02 49 46 00 1A 42 C6 21 8A 4E 00 00 A2 53 C6 21
+0E 4A 30 4D E2 94 04 54 48 45 4E 00 1A 42 C6 21
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+63 2F 88 DA 00 00 30 4D D6 92 04 45 4C 53 45 00
+1A 42 C6 21 BA 40 00 3C 00 00 A2 53 C6 21 2F 83
+8F 4A 00 00 E3 3F 16 95 05 55 4E 54 49 4C 3A 4F
+08 4E 3E 4F 19 42 C6 21 2A 83 0A 89 0A 11 3A 90
+00 FE 42 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
+C6 21 30 4D 5A 93 05 41 47 41 49 4E 0A 4E 38 40
+00 3C E7 3F 00 00 05 57 48 49 4C 45 87 12 04 95
+76 80 2A 80 BA 94 06 52 45 50 45 41 54 00 87 12
+8C 95 1C 95 2A 80 B8 95 3D 41 08 4E 3E 4F 2A 48
+B2 92 C4 21 CD 2F 98 42 C6 21 00 00 30 4D EA 93
+03 42 57 31 84 12 B6 95 00 00 D0 95 03 42 57 32
+84 12 B6 95 00 00 DC 95 03 42 57 33 84 12 B6 95
+00 00 F4 95 3D 41 1A 42 C6 21 28 4E B2 92 C4 21
+90 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F
+30 4D 00 00 03 46 57 31 84 12 F2 95 00 00 14 96
+03 46 57 32 84 12 F2 95 00 00 20 96 03 46 57 33
+84 12 F2 95 00 00 00 00 05 3F 47 4F 54 4F 3E 90
+00 30 07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0
+00 08 87 12 C0 88 DA 86 2A 80 2C 96 04 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
+@FFFE
+9E 8E
+q
diff --git a/binaries/LP_MSP430FR2476_1MHz.txt b/binaries/LP_MSP430FR2476_1MHz.txt
new file mode 100644 (file)
index 0000000..06c1a95
--- /dev/null
@@ -0,0 +1,365 @@
+@1800
+10 00 08 00 00 D6 E8 03 05 00 18 00 5E 96 D0 8C
+2D 01 6B 30 B6 82 C8 82
+@8000
+2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
+8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 80
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 80
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 80
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 80 02 3E 52 00 0E 12 3E 4F 30 4D 70 80 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 80 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 80 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 80
+01 21 BE 4F 00 00 3E 4F 30 4D CC 80 02 30 3D 00
+1E 83 0E 7E 30 4D FC 80 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 81 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 81 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 81 02 23 53 00 87 12 88 81 C0 81
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 81
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 80 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 81 34 80 86 80 D4 80 BA 81
+92 80 F8 81 D4 81 D6 83 42 87 82 83 2A 80 22 81
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 81 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 82 18 42 0C 05 2F 83 8F 4E
+00 00 B0 12 B6 82 92 B3 1C 05 FD 27 1E 42 0C 05
+B0 12 C8 82 30 4D A2 B3 1C 05 FD 27 B2 40 11 00
+0E 05 E2 C3 43 02 30 41 B2 40 13 00 0E 05 E2 D3
+43 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 82
+B0 12 B6 82 12 D2 0A 18 F9 3F F0 80 06 41 43 43
+45 50 54 00 3C 40 64 83 3B 40 2E 83 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 83
+92 B3 1C 05 05 24 18 42 0C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 0C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 82 48 0E 05 30 4D 5A 83 2D 83 92 B3 1C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 80 04 45 4D 49
+54 00 30 40 86 83 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C 83 04 45 43 48 4F 00 B2 40 82 48
+52 83 82 43 DE 21 30 4D 32 82 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 83 92 43 DE 21 30 4D 20 82
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 83
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 83 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 81
+02 43 52 00 30 40 08 84 87 12 1E 84 02 0D 0A 00
+D6 83 2A 80 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 81 82 53 22 00 82 43 B4 21 87 12 14 84
+1E 84 B0 86 14 84 22 00 80 84 4C 84 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA 83 82 2E 22 00 87 12 38 84 14 84 D6 83
+B0 86 2A 80 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
+60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
+18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
+F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
+CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
+0C 4E 65 4C 74 40 80 00 3B 40 CA 21 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
+FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
+00 00 35 40 0E 80 34 40 00 80 30 4D 82 80 07 3E
+4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
+DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
+07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
+D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 85 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 85 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 81 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 82 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 80 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC 82 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 83 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 86 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 84 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 84 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 87 42 87 80 84 50 87
+3D 40 58 87 CC 22 82 3E 5A 87 0A 4E 3E 4F 3D 40
+70 87 23 27 3D 40 4A 87 1A E2 BE 21 A1 27 B5 23
+72 87 3E 4F 3D 40 4A 87 B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 8A CB 3F D2 86
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 80 46 87 AE 87 B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 81 04 51 55 49 54 00 82 43 08 18 31 40
+E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A 80
+04 84 8C 83 42 87 82 83 46 87 A4 80 0C 81 1E 84
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 88
+14 84 30 FF A0 86 26 81 1E 84 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 88 3C 82 E0 87 C2 86 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E 88 86 41 42 4F
+52 54 22 00 87 12 38 84 14 84 40 88 B0 86 2A 80
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 8D
+B0 12 B6 82 92 C3 1C 05 38 40 AA 0A 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 1C 05 F3 23 87 12
+42 8D 14 84 DE 21 EA 80 AC 83 1E 84 04 1B 5B 37
+6D 00 D6 83 58 80 40 82 9A 88 04 84 1E 84 05 6C
+69 6E 65 3A D6 83 D0 80 24 82 D6 83 1E 84 04 1B
+5B 30 6D 00 D6 83 24 88 00 00 83 5B 27 5D 87 12
+C0 88 14 84 14 84 B0 86 B0 86 2A 80 E8 84 01 27
+87 12 42 87 80 84 EE 84 40 82 CE 88 2A 80 7A 87
+32 81 81 5C 92 42 C0 21 C4 21 30 4D AA 88 81 5B
+82 43 BE 21 30 4D D2 88 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 86 82 49 53 00 87 12
+BE 87 EA 80 40 82 12 89 AE 88 14 84 F0 88 B0 86
+2A 80 C0 88 F0 88 2A 80 FA 88 09 49 4D 4D 45 44
+49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
+C4 87 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 87
+80 84 EE 84 58 80 40 82 CE 88 0C 81 40 82 5C 89
+14 84 14 84 B0 86 B0 86 14 84 B0 86 B0 86 2A 80
+DE 88 81 3B 82 93 BE 21 B5 27 87 12 14 84 2A 80
+B0 86 FA 89 E0 88 2A 80 62 89 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 89 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A 89 01 3A 30 12 A0 89 92 B3 C6 21 A2 63 C6 21
+87 12 42 87 80 84 C8 89 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 84 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 88 90 87 05 44 45 46 45 52
+B0 12 B8 89 BA 40 30 40 FC FF BA 40 AE 89 FE FF
+E3 3F 1E 87 06 43 52 45 41 54 45 00 B0 12 B8 89
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 8A 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 85 05 3E 42 4F 44 59 2E 52
+30 4D 44 8A 04 43 4F 44 45 00 B0 12 B8 89 A2 82
+C6 21 87 12 D2 8C AC 8C 2A 80 84 8A 07 43 4F 44
+45 4E 4E 4D B0 12 86 89 F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 8C FA 89 2A 80 2C 88 03 41
+53 4D B2 40 B0 8C DA 21 E0 3F AC 8A 06 45 4E 44
+41 53 4D 00 87 12 B4 8A F4 8C 2A 80 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 8C 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A 80
+02 00 A2 52 C6 21 ED 3F 1A 89 85 48 49 32 4C 4F
+87 12 A0 86 4A 8B B0 86 E0 88 D2 8C AC 8C 2A 80
+1A 8B 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 82 00 00 2E 53 30 4D 5E 8A
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C 82 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 83
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C 8A 85 42 45 47 49 4E 30 40 A0 86 70 8B 85 55
+4E 54 49 4C 39 40 40 82 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE 8A 85 41
+47 41 49 4E 39 40 3C 82 EF 3F 7A 84 85 57 48 49
+4C 45 87 12 36 8B 76 80 2A 80 34 84 86 52 45 50
+45 41 54 00 87 12 B4 8B 76 8B 2A 80 50 8B 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 82 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 86 84 4C 4F 4F 50 00 39 40 76 82
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 82 85 2B 4C 4F 4F 50
+39 40 64 82 E5 3F 06 8C 04 4D 4F 56 45 00 0A 4E
+38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
+F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 84
+CA 21 F2 80 2A 80 84 12 7E 8C AE 8B 44 8F DE 8B
+BE 88 32 8B 3A 8C 58 90 64 84 66 8D 80 8D 8E 8B
+00 8E 00 00 2A 90 E8 88 78 8A 00 00 84 12 7E 8C
+76 95 D8 95 2A 95 4C 96 F0 94 00 00 20 92 00 00
+E6 94 96 95 48 95 86 95 30 93 00 00 00 00 28 96
+AA 8C 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 8C EE 8C
+F4 8C 04 8D 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 89 09 50 57 52 5F 53 54 41
+54 45 84 12 FC 8C D0 8C 5E 96 CC 8B 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 8D 92 42 0C 18
+48 8D EF 3F 38 8D 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 8D 92 42 C6 21 48 8D 30 4D 4C 8D
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC 8B 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 82
+DE 82 B2 40 0A 8E 08 8E B2 40 D0 8C 0E 18 B2 40
+5E 96 0C 18 30 12 56 8D B2 40 86 83 84 83 B2 40
+08 84 06 84 B2 40 98 82 96 82 B2 40 18 00 0A 18
+37 40 1A 80 36 40 92 80 35 40 0E 80 34 40 00 80
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A 8D
+04 57 41 52 4D 00 30 40 0A 8E 3D 40 40 8E 92 C3
+30 01 1E 42 08 18 0E 93 12 24 F2 B0 10 00 00 02
+02 20 3E E3 1E 53 F2 D0 30 00 0A 02 3E 90 0A 00
+B7 27 3E 90 16 00 B4 2F 2E 93 83 27 8C 2F 30 4D
+1E 84 06 0D 1B 5B 37 6D 23 00 D6 83 34 82 1E 84
+19 46 61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D
+2E 54 68 6F 6F 72 65 6E 73 20 D6 83 14 84 30 FF
+A0 86 B8 80 24 82 1E 84 0A 62 79 74 65 73 20 66
+72 65 65 00 3C 82 9A 88 82 8B 04 43 4F 4C 44 00
+92 B3 0A 05 FD 23 B2 40 04 A5 20 01 40 8E B2 40
+88 5A CC 01 B2 D3 06 02 B2 40 FE FF 02 02 B2 D3
+26 02 B2 40 FF 7F 22 02 B2 D3 46 02 B2 40 FC FF
+42 02 E2 D3 45 02 B2 40 00 A5 60 01 B2 40 FF 1E
+80 01 B2 40 B0 00 82 01 B2 40 1E 00 84 01 39 40
+10 00 B2 D0 10 00 86 01 92 D2 5E 01 08 18 38 40
+59 14 18 83 FE 23 19 83 FA 23 39 40 00 20 29 83
+89 43 00 20 FC 23 39 40 38 00 29 83 B9 40 9E 8E
+8C FF FB 23 B2 40 26 83 E0 FF B2 40 81 00 00 05
+92 42 02 18 06 05 92 42 04 18 08 05 92 C3 00 05
+92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12 06 8E
+4C 3F 8A 8E 07 43 4F 4D 50 41 52 45 0C 4E 38 4F
+3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83
+07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D
+1E 43 30 4D B2 89 86 5B 54 48 45 4E 5D 00 30 4D
+76 8F 86 5B 45 4C 53 45 5D 00 87 12 14 84 00 00
+C6 80 42 87 80 84 24 87 34 80 40 82 EC 8F 44 80
+1E 84 06 5B 54 48 45 4E 5D 00 4C 8F 4A 82 BC 8F
+F8 83 D0 80 58 80 4A 82 92 8F 2A 80 44 80 1E 84
+06 5B 45 4C 53 45 5D 00 4C 8F 4A 82 DA 8F F8 83
+D0 80 58 80 4A 82 90 8F 2A 80 1E 84 04 5B 49 46
+5D 00 4C 8F 4A 82 92 8F 3C 82 90 8F F8 83 1E 84
+05 0D 0A 6B 6F 20 D6 83 8C 83 32 87 3C 82 92 8F
+82 8F 84 5B 49 46 5D 00 0E 93 3E 4F BE 27 30 4D
+02 90 89 5B 44 45 46 49 4E 45 44 5D 87 12 42 87
+80 84 EE 84 6A 80 2A 80 12 90 8B 5B 55 4E 44 45
+46 49 4E 45 44 5D 87 12 42 87 80 84 EE 84 6A 80
+00 81 2A 80 46 90 3D 41 B2 4E 0E 18 A2 4E 0C 18
+3E 4F 30 40 56 8D 48 8C 06 4D 41 52 4B 45 52 00
+B0 12 B8 89 BA 40 84 12 FC FF BA 40 44 90 FE FF
+9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
+30 40 00 8A 1C 15 B0 12 2A 80 80 84 EE 84 4A 82
+9A 90 AA 85 40 82 CE 88 B4 90 9C 90 39 4E 39 80
+86 12 08 24 19 53 02 20 2E 4E 04 3C 2E 53 19 53
+01 24 2E 82 1B 17 30 41 3E 40 28 00 B0 12 84 90
+19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00
+1C 15 12 12 C4 21 92 53 C4 21 B0 12 2A 80 80 84
+AA 85 40 82 F2 90 E8 90 21 53 3E 90 10 00 7D 2D
+E1 2B F4 90 B2 41 C4 21 DD 3F 87 12 42 87 74 84
+02 91 0C 43 1B 42 C6 21 A2 53 C6 21 6A 4E 3E 4F
+7A 90 23 00 27 20 92 53 C4 21 B0 12 84 90 3C 40
+00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24 3C 40
+20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24 3C 40
+30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24 3C 40
+30 00 19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 4F
+3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02 92 53
+C4 21 B0 12 84 90 ED 3F 7A 90 40 00 16 20 3C 40
+20 00 92 53 C4 21 B0 12 D0 90 0C 20 3C 50 10 00
+3E 40 2B 00 B0 12 D0 90 92 92 C0 21 C4 21 02 24
+92 53 C4 21 8E 10 0C 5E DA 3F B0 12 D0 90 FA 23
+3C 50 10 00 B0 12 B8 90 EF 3F 0C 43 1B 42 C6 21
+A2 53 C6 21 87 12 42 87 74 84 CC 91 FE 90 26 00
+00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F B0 12
+D0 90 E1 23 3C 50 80 00 B0 12 B8 90 DC 3F D6 82
+04 52 45 54 49 00 87 12 14 84 00 13 B0 86 2A 80
+14 84 2C 00 FA 90 C4 91 0A 92 09 4B 2E 4E 0E DC
+A4 3F FC 8A 03 4D 4F 56 84 12 00 92 00 40 14 92
+05 4D 4F 56 2E 42 84 12 00 92 40 40 00 00 03 41
+44 44 84 12 00 92 00 50 2E 92 05 41 44 44 2E 42
+84 12 00 92 40 50 3A 92 04 41 44 44 43 00 84 12
+00 92 00 60 48 92 06 41 44 44 43 2E 42 00 84 12
+00 92 40 60 F0 91 04 53 55 42 43 00 84 12 00 92
+00 70 66 92 06 53 55 42 43 2E 42 00 84 12 00 92
+40 70 74 92 03 53 55 42 84 12 00 92 00 80 84 92
+05 53 55 42 2E 42 84 12 00 92 40 80 DE 8A 03 43
+4D 50 84 12 00 92 00 90 9E 92 05 43 4D 50 2E 42
+84 12 00 92 40 90 CC 8A 04 44 41 44 44 00 84 12
+00 92 00 A0 B8 92 06 44 41 44 44 2E 42 00 84 12
+00 92 40 A0 AA 92 03 42 49 54 84 12 00 92 00 B0
+D6 92 05 42 49 54 2E 42 84 12 00 92 40 B0 E2 92
+03 42 49 43 84 12 00 92 00 C0 F0 92 05 42 49 43
+2E 42 84 12 00 92 40 C0 FC 92 03 42 49 53 84 12
+00 92 00 D0 0A 93 05 42 49 53 2E 42 84 12 00 92
+40 D0 00 00 03 58 4F 52 84 12 00 92 00 E0 24 93
+05 58 4F 52 2E 42 84 12 00 92 40 E0 56 92 03 41
+4E 44 84 12 00 92 00 F0 3E 93 05 41 4E 44 2E 42
+84 12 00 92 40 F0 42 87 FA 90 5C 93 0A 4C 3C F0
+70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 90 92 03 52
+52 43 84 12 56 93 00 10 6E 93 05 52 52 43 2E 42
+84 12 56 93 40 10 7A 93 04 53 57 50 42 00 84 12
+56 93 80 10 88 93 03 52 52 41 84 12 56 93 00 11
+96 93 05 52 52 41 2E 42 84 12 56 93 40 11 A2 93
+03 53 58 54 84 12 56 93 80 11 00 00 04 50 55 53
+48 00 84 12 56 93 00 12 BC 93 06 50 55 53 48 2E
+42 00 84 12 56 93 40 12 16 93 04 43 41 4C 4C 00
+84 12 56 93 80 12 1A 53 0E 4A 87 12 34 82 1E 84
+0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 4C 88
+42 87 74 84 06 94 92 53 C4 21 3E 40 2C 00 B0 12
+2A 80 80 84 AA 85 40 82 CE 88 BA 91 1E 94 0A 4E
+3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A
+01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F
+2A 92 D1 2F 8A 10 5A 06 8F 3F B0 93 04 52 52 43
+4D 00 84 12 00 94 50 00 4C 94 04 52 52 41 4D 00
+84 12 00 94 50 01 5A 94 04 52 4C 41 4D 00 84 12
+00 94 50 02 68 94 04 52 52 55 4D 00 84 12 00 94
+50 03 CA 93 05 50 55 53 48 4D 84 12 00 94 00 15
+84 94 04 50 4F 50 4D 00 84 12 00 94 00 17 76 94
+03 53 3E 3D 85 12 00 38 A0 94 02 53 3C 00 85 12
+00 34 92 94 03 30 3E 3D 85 12 00 30 B4 94 02 30
+3C 00 85 12 00 30 00 00 02 55 3C 00 85 12 00 2C
+C8 94 03 55 3E 3D 85 12 00 28 BE 94 03 30 3C 3E
+85 12 00 24 DC 94 02 30 3D 00 85 12 00 20 00 00
+02 49 46 00 1A 42 C6 21 8A 4E 00 00 A2 53 C6 21
+0E 4A 30 4D D2 94 04 54 48 45 4E 00 1A 42 C6 21
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+63 2F 88 DA 00 00 30 4D C6 92 04 45 4C 53 45 00
+1A 42 C6 21 BA 40 00 3C 00 00 A2 53 C6 21 2F 83
+8F 4A 00 00 E3 3F 06 95 05 55 4E 54 49 4C 3A 4F
+08 4E 3E 4F 19 42 C6 21 2A 83 0A 89 0A 11 3A 90
+00 FE 42 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
+C6 21 30 4D 4A 93 05 41 47 41 49 4E 0A 4E 38 40
+00 3C E7 3F 00 00 05 57 48 49 4C 45 87 12 F4 94
+76 80 2A 80 AA 94 06 52 45 50 45 41 54 00 87 12
+7C 95 0C 95 2A 80 A8 95 3D 41 08 4E 3E 4F 2A 48
+B2 92 C4 21 CD 2F 98 42 C6 21 00 00 30 4D DA 93
+03 42 57 31 84 12 A6 95 00 00 C0 95 03 42 57 32
+84 12 A6 95 00 00 CC 95 03 42 57 33 84 12 A6 95
+00 00 E4 95 3D 41 1A 42 C6 21 28 4E B2 92 C4 21
+90 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F
+30 4D 00 00 03 46 57 31 84 12 E2 95 00 00 04 96
+03 46 57 32 84 12 E2 95 00 00 10 96 03 46 57 33
+84 12 E2 95 00 00 00 00 05 3F 47 4F 54 4F 3E 90
+00 30 07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0
+00 08 87 12 C0 88 DA 86 2A 80 1C 96 04 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
+@FFFE
+9E 8E
+q
diff --git a/binaries/LP_MSP430FR2476_8MHz.txt b/binaries/LP_MSP430FR2476_8MHz.txt
new file mode 100644 (file)
index 0000000..aece4c9
--- /dev/null
@@ -0,0 +1,365 @@
+@1800
+10 00 04 00 51 55 40 1F 05 00 18 00 5E 96 D0 8C
+2D 01 6B 30 B6 82 C8 82
+@8000
+2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
+8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 80
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 80
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 80
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 80 02 3E 52 00 0E 12 3E 4F 30 4D 70 80 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 80 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 80 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 80
+01 21 BE 4F 00 00 3E 4F 30 4D CC 80 02 30 3D 00
+1E 83 0E 7E 30 4D FC 80 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 81 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 81 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 81 02 23 53 00 87 12 88 81 C0 81
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 81
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 80 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 81 34 80 86 80 D4 80 BA 81
+92 80 F8 81 D4 81 D6 83 42 87 82 83 2A 80 22 81
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 81 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 82 18 42 0C 05 2F 83 8F 4E
+00 00 B0 12 B6 82 92 B3 1C 05 FD 27 1E 42 0C 05
+B0 12 C8 82 30 4D A2 B3 1C 05 FD 27 B2 40 11 00
+0E 05 E2 C3 43 02 30 41 B2 40 13 00 0E 05 E2 D3
+43 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 82
+B0 12 B6 82 12 D2 0A 18 F9 3F F0 80 06 41 43 43
+45 50 54 00 3C 40 64 83 3B 40 2E 83 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 83
+92 B3 1C 05 05 24 18 42 0C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 0C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 82 48 0E 05 30 4D 5A 83 2D 83 92 B3 1C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 80 04 45 4D 49
+54 00 30 40 86 83 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C 83 04 45 43 48 4F 00 B2 40 82 48
+52 83 82 43 DE 21 30 4D 32 82 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 83 92 43 DE 21 30 4D 20 82
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 83
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 83 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 81
+02 43 52 00 30 40 08 84 87 12 1E 84 02 0D 0A 00
+D6 83 2A 80 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 81 82 53 22 00 82 43 B4 21 87 12 14 84
+1E 84 B0 86 14 84 22 00 80 84 4C 84 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA 83 82 2E 22 00 87 12 38 84 14 84 D6 83
+B0 86 2A 80 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
+60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
+18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
+F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
+CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
+0C 4E 65 4C 74 40 80 00 3B 40 CA 21 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
+FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
+00 00 35 40 0E 80 34 40 00 80 30 4D 82 80 07 3E
+4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
+DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
+07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
+D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 85 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 85 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 81 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 82 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 80 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC 82 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 83 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 86 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 84 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 84 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 87 42 87 80 84 50 87
+3D 40 58 87 CC 22 82 3E 5A 87 0A 4E 3E 4F 3D 40
+70 87 23 27 3D 40 4A 87 1A E2 BE 21 A1 27 B5 23
+72 87 3E 4F 3D 40 4A 87 B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 8A CB 3F D2 86
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 80 46 87 AE 87 B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 81 04 51 55 49 54 00 82 43 08 18 31 40
+E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A 80
+04 84 8C 83 42 87 82 83 46 87 A4 80 0C 81 1E 84
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 88
+14 84 30 FF A0 86 26 81 1E 84 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 88 3C 82 E0 87 C2 86 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E 88 86 41 42 4F
+52 54 22 00 87 12 38 84 14 84 40 88 B0 86 2A 80
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 8D
+B0 12 B6 82 92 C3 1C 05 38 40 50 55 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 1C 05 F3 23 87 12
+42 8D 14 84 DE 21 EA 80 AC 83 1E 84 04 1B 5B 37
+6D 00 D6 83 58 80 40 82 9A 88 04 84 1E 84 05 6C
+69 6E 65 3A D6 83 D0 80 24 82 D6 83 1E 84 04 1B
+5B 30 6D 00 D6 83 24 88 00 00 83 5B 27 5D 87 12
+C0 88 14 84 14 84 B0 86 B0 86 2A 80 E8 84 01 27
+87 12 42 87 80 84 EE 84 40 82 CE 88 2A 80 7A 87
+32 81 81 5C 92 42 C0 21 C4 21 30 4D AA 88 81 5B
+82 43 BE 21 30 4D D2 88 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 86 82 49 53 00 87 12
+BE 87 EA 80 40 82 12 89 AE 88 14 84 F0 88 B0 86
+2A 80 C0 88 F0 88 2A 80 FA 88 09 49 4D 4D 45 44
+49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
+C4 87 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 87
+80 84 EE 84 58 80 40 82 CE 88 0C 81 40 82 5C 89
+14 84 14 84 B0 86 B0 86 14 84 B0 86 B0 86 2A 80
+DE 88 81 3B 82 93 BE 21 B5 27 87 12 14 84 2A 80
+B0 86 FA 89 E0 88 2A 80 62 89 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 89 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A 89 01 3A 30 12 A0 89 92 B3 C6 21 A2 63 C6 21
+87 12 42 87 80 84 C8 89 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 84 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 88 90 87 05 44 45 46 45 52
+B0 12 B8 89 BA 40 30 40 FC FF BA 40 AE 89 FE FF
+E3 3F 1E 87 06 43 52 45 41 54 45 00 B0 12 B8 89
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 8A 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 85 05 3E 42 4F 44 59 2E 52
+30 4D 44 8A 04 43 4F 44 45 00 B0 12 B8 89 A2 82
+C6 21 87 12 D2 8C AC 8C 2A 80 84 8A 07 43 4F 44
+45 4E 4E 4D B0 12 86 89 F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 8C FA 89 2A 80 2C 88 03 41
+53 4D B2 40 B0 8C DA 21 E0 3F AC 8A 06 45 4E 44
+41 53 4D 00 87 12 B4 8A F4 8C 2A 80 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 8C 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A 80
+02 00 A2 52 C6 21 ED 3F 1A 89 85 48 49 32 4C 4F
+87 12 A0 86 4A 8B B0 86 E0 88 D2 8C AC 8C 2A 80
+1A 8B 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 82 00 00 2E 53 30 4D 5E 8A
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C 82 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 83
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C 8A 85 42 45 47 49 4E 30 40 A0 86 70 8B 85 55
+4E 54 49 4C 39 40 40 82 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE 8A 85 41
+47 41 49 4E 39 40 3C 82 EF 3F 7A 84 85 57 48 49
+4C 45 87 12 36 8B 76 80 2A 80 34 84 86 52 45 50
+45 41 54 00 87 12 B4 8B 76 8B 2A 80 50 8B 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 82 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 86 84 4C 4F 4F 50 00 39 40 76 82
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 82 85 2B 4C 4F 4F 50
+39 40 64 82 E5 3F 06 8C 04 4D 4F 56 45 00 0A 4E
+38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
+F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 84
+CA 21 F2 80 2A 80 84 12 7E 8C AE 8B 44 8F DE 8B
+BE 88 32 8B 3A 8C 58 90 64 84 66 8D 80 8D 8E 8B
+00 8E 00 00 2A 90 E8 88 78 8A 00 00 84 12 7E 8C
+76 95 D8 95 2A 95 4C 96 F0 94 00 00 20 92 00 00
+E6 94 96 95 48 95 86 95 30 93 00 00 00 00 28 96
+AA 8C 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 8C EE 8C
+F4 8C 04 8D 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 89 09 50 57 52 5F 53 54 41
+54 45 84 12 FC 8C D0 8C 5E 96 CC 8B 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 8D 92 42 0C 18
+48 8D EF 3F 38 8D 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 8D 92 42 C6 21 48 8D 30 4D 4C 8D
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC 8B 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 82
+DE 82 B2 40 0A 8E 08 8E B2 40 D0 8C 0E 18 B2 40
+5E 96 0C 18 30 12 56 8D B2 40 86 83 84 83 B2 40
+08 84 06 84 B2 40 98 82 96 82 B2 40 18 00 0A 18
+37 40 1A 80 36 40 92 80 35 40 0E 80 34 40 00 80
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A 8D
+04 57 41 52 4D 00 30 40 0A 8E 3D 40 40 8E 92 C3
+30 01 1E 42 08 18 0E 93 12 24 F2 B0 10 00 00 02
+02 20 3E E3 1E 53 F2 D0 30 00 0A 02 3E 90 0A 00
+B7 27 3E 90 16 00 B4 2F 2E 93 83 27 8C 2F 30 4D
+1E 84 06 0D 1B 5B 37 6D 23 00 D6 83 34 82 1E 84
+19 46 61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D
+2E 54 68 6F 6F 72 65 6E 73 20 D6 83 14 84 30 FF
+A0 86 B8 80 24 82 1E 84 0A 62 79 74 65 73 20 66
+72 65 65 00 3C 82 9A 88 82 8B 04 43 4F 4C 44 00
+92 B3 0A 05 FD 23 B2 40 04 A5 20 01 40 8E B2 40
+88 5A CC 01 B2 D3 06 02 B2 40 FE FF 02 02 B2 D3
+26 02 B2 40 FF 7F 22 02 B2 D3 46 02 B2 40 FC FF
+42 02 E2 D3 45 02 B2 40 00 A5 60 01 B2 40 FF 1E
+80 01 B2 40 B6 00 82 01 B2 40 F4 00 84 01 39 40
+80 00 B2 D0 10 00 86 01 92 D2 5E 01 08 18 38 40
+59 14 18 83 FE 23 19 83 FA 23 39 40 00 20 29 83
+89 43 00 20 FC 23 39 40 38 00 29 83 B9 40 9E 8E
+8C FF FB 23 B2 40 26 83 E0 FF B2 40 81 00 00 05
+92 42 02 18 06 05 92 42 04 18 08 05 92 C3 00 05
+92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12 06 8E
+4C 3F 8A 8E 07 43 4F 4D 50 41 52 45 0C 4E 38 4F
+3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83
+07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D
+1E 43 30 4D B2 89 86 5B 54 48 45 4E 5D 00 30 4D
+76 8F 86 5B 45 4C 53 45 5D 00 87 12 14 84 00 00
+C6 80 42 87 80 84 24 87 34 80 40 82 EC 8F 44 80
+1E 84 06 5B 54 48 45 4E 5D 00 4C 8F 4A 82 BC 8F
+F8 83 D0 80 58 80 4A 82 92 8F 2A 80 44 80 1E 84
+06 5B 45 4C 53 45 5D 00 4C 8F 4A 82 DA 8F F8 83
+D0 80 58 80 4A 82 90 8F 2A 80 1E 84 04 5B 49 46
+5D 00 4C 8F 4A 82 92 8F 3C 82 90 8F F8 83 1E 84
+05 0D 0A 6B 6F 20 D6 83 8C 83 32 87 3C 82 92 8F
+82 8F 84 5B 49 46 5D 00 0E 93 3E 4F BE 27 30 4D
+02 90 89 5B 44 45 46 49 4E 45 44 5D 87 12 42 87
+80 84 EE 84 6A 80 2A 80 12 90 8B 5B 55 4E 44 45
+46 49 4E 45 44 5D 87 12 42 87 80 84 EE 84 6A 80
+00 81 2A 80 46 90 3D 41 B2 4E 0E 18 A2 4E 0C 18
+3E 4F 30 40 56 8D 48 8C 06 4D 41 52 4B 45 52 00
+B0 12 B8 89 BA 40 84 12 FC FF BA 40 44 90 FE FF
+9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
+30 40 00 8A 1C 15 B0 12 2A 80 80 84 EE 84 4A 82
+9A 90 AA 85 40 82 CE 88 B4 90 9C 90 39 4E 39 80
+86 12 08 24 19 53 02 20 2E 4E 04 3C 2E 53 19 53
+01 24 2E 82 1B 17 30 41 3E 40 28 00 B0 12 84 90
+19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00
+1C 15 12 12 C4 21 92 53 C4 21 B0 12 2A 80 80 84
+AA 85 40 82 F2 90 E8 90 21 53 3E 90 10 00 7D 2D
+E1 2B F4 90 B2 41 C4 21 DD 3F 87 12 42 87 74 84
+02 91 0C 43 1B 42 C6 21 A2 53 C6 21 6A 4E 3E 4F
+7A 90 23 00 27 20 92 53 C4 21 B0 12 84 90 3C 40
+00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24 3C 40
+20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24 3C 40
+30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24 3C 40
+30 00 19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 4F
+3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02 92 53
+C4 21 B0 12 84 90 ED 3F 7A 90 40 00 16 20 3C 40
+20 00 92 53 C4 21 B0 12 D0 90 0C 20 3C 50 10 00
+3E 40 2B 00 B0 12 D0 90 92 92 C0 21 C4 21 02 24
+92 53 C4 21 8E 10 0C 5E DA 3F B0 12 D0 90 FA 23
+3C 50 10 00 B0 12 B8 90 EF 3F 0C 43 1B 42 C6 21
+A2 53 C6 21 87 12 42 87 74 84 CC 91 FE 90 26 00
+00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F B0 12
+D0 90 E1 23 3C 50 80 00 B0 12 B8 90 DC 3F D6 82
+04 52 45 54 49 00 87 12 14 84 00 13 B0 86 2A 80
+14 84 2C 00 FA 90 C4 91 0A 92 09 4B 2E 4E 0E DC
+A4 3F FC 8A 03 4D 4F 56 84 12 00 92 00 40 14 92
+05 4D 4F 56 2E 42 84 12 00 92 40 40 00 00 03 41
+44 44 84 12 00 92 00 50 2E 92 05 41 44 44 2E 42
+84 12 00 92 40 50 3A 92 04 41 44 44 43 00 84 12
+00 92 00 60 48 92 06 41 44 44 43 2E 42 00 84 12
+00 92 40 60 F0 91 04 53 55 42 43 00 84 12 00 92
+00 70 66 92 06 53 55 42 43 2E 42 00 84 12 00 92
+40 70 74 92 03 53 55 42 84 12 00 92 00 80 84 92
+05 53 55 42 2E 42 84 12 00 92 40 80 DE 8A 03 43
+4D 50 84 12 00 92 00 90 9E 92 05 43 4D 50 2E 42
+84 12 00 92 40 90 CC 8A 04 44 41 44 44 00 84 12
+00 92 00 A0 B8 92 06 44 41 44 44 2E 42 00 84 12
+00 92 40 A0 AA 92 03 42 49 54 84 12 00 92 00 B0
+D6 92 05 42 49 54 2E 42 84 12 00 92 40 B0 E2 92
+03 42 49 43 84 12 00 92 00 C0 F0 92 05 42 49 43
+2E 42 84 12 00 92 40 C0 FC 92 03 42 49 53 84 12
+00 92 00 D0 0A 93 05 42 49 53 2E 42 84 12 00 92
+40 D0 00 00 03 58 4F 52 84 12 00 92 00 E0 24 93
+05 58 4F 52 2E 42 84 12 00 92 40 E0 56 92 03 41
+4E 44 84 12 00 92 00 F0 3E 93 05 41 4E 44 2E 42
+84 12 00 92 40 F0 42 87 FA 90 5C 93 0A 4C 3C F0
+70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 90 92 03 52
+52 43 84 12 56 93 00 10 6E 93 05 52 52 43 2E 42
+84 12 56 93 40 10 7A 93 04 53 57 50 42 00 84 12
+56 93 80 10 88 93 03 52 52 41 84 12 56 93 00 11
+96 93 05 52 52 41 2E 42 84 12 56 93 40 11 A2 93
+03 53 58 54 84 12 56 93 80 11 00 00 04 50 55 53
+48 00 84 12 56 93 00 12 BC 93 06 50 55 53 48 2E
+42 00 84 12 56 93 40 12 16 93 04 43 41 4C 4C 00
+84 12 56 93 80 12 1A 53 0E 4A 87 12 34 82 1E 84
+0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 4C 88
+42 87 74 84 06 94 92 53 C4 21 3E 40 2C 00 B0 12
+2A 80 80 84 AA 85 40 82 CE 88 BA 91 1E 94 0A 4E
+3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A
+01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F
+2A 92 D1 2F 8A 10 5A 06 8F 3F B0 93 04 52 52 43
+4D 00 84 12 00 94 50 00 4C 94 04 52 52 41 4D 00
+84 12 00 94 50 01 5A 94 04 52 4C 41 4D 00 84 12
+00 94 50 02 68 94 04 52 52 55 4D 00 84 12 00 94
+50 03 CA 93 05 50 55 53 48 4D 84 12 00 94 00 15
+84 94 04 50 4F 50 4D 00 84 12 00 94 00 17 76 94
+03 53 3E 3D 85 12 00 38 A0 94 02 53 3C 00 85 12
+00 34 92 94 03 30 3E 3D 85 12 00 30 B4 94 02 30
+3C 00 85 12 00 30 00 00 02 55 3C 00 85 12 00 2C
+C8 94 03 55 3E 3D 85 12 00 28 BE 94 03 30 3C 3E
+85 12 00 24 DC 94 02 30 3D 00 85 12 00 20 00 00
+02 49 46 00 1A 42 C6 21 8A 4E 00 00 A2 53 C6 21
+0E 4A 30 4D D2 94 04 54 48 45 4E 00 1A 42 C6 21
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+63 2F 88 DA 00 00 30 4D C6 92 04 45 4C 53 45 00
+1A 42 C6 21 BA 40 00 3C 00 00 A2 53 C6 21 2F 83
+8F 4A 00 00 E3 3F 06 95 05 55 4E 54 49 4C 3A 4F
+08 4E 3E 4F 19 42 C6 21 2A 83 0A 89 0A 11 3A 90
+00 FE 42 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
+C6 21 30 4D 4A 93 05 41 47 41 49 4E 0A 4E 38 40
+00 3C E7 3F 00 00 05 57 48 49 4C 45 87 12 F4 94
+76 80 2A 80 AA 94 06 52 45 50 45 41 54 00 87 12
+7C 95 0C 95 2A 80 A8 95 3D 41 08 4E 3E 4F 2A 48
+B2 92 C4 21 CD 2F 98 42 C6 21 00 00 30 4D DA 93
+03 42 57 31 84 12 A6 95 00 00 C0 95 03 42 57 32
+84 12 A6 95 00 00 CC 95 03 42 57 33 84 12 A6 95
+00 00 E4 95 3D 41 1A 42 C6 21 28 4E B2 92 C4 21
+90 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F
+30 4D 00 00 03 46 57 31 84 12 E2 95 00 00 04 96
+03 46 57 32 84 12 E2 95 00 00 10 96 03 46 57 33
+84 12 E2 95 00 00 00 00 05 3F 47 4F 54 4F 3E 90
+00 30 07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0
+00 08 87 12 C0 88 DA 86 2A 80 1C 96 04 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
+@FFFE
+9E 8E
+q
diff --git a/binaries/Log/log.txt b/binaries/Log/log.txt
new file mode 100644 (file)
index 0000000..5444514
--- /dev/null
@@ -0,0 +1,138 @@
+Tue Jun 11 13:46:45 2019:      * -----/|-------------------------------------------------------------------- *
+Tue Jun 11 13:46:45 2019:      *     / |__                                                                   *
+Tue Jun 11 13:46:45 2019:      *    /_   /   MSP Flasher v1.3.18                                             *
+Tue Jun 11 13:46:45 2019:      *      | /                                                                    *
+Tue Jun 11 13:46:45 2019:      * -----|/-------------------------------------------------------------------- *
+Tue Jun 11 13:46:45 2019:      *
+Tue Jun 11 13:46:45 2019:      * Evaluating triggers...done
+Tue Jun 11 13:46:45 2019:      * Checking for available FET debuggers: 
+Tue Jun 11 13:46:45 2019:      * Found USB FET @ COM4 <- Selected
+Tue Jun 11 13:46:45 2019:      * Initializing interface @ COM4...done
+Tue Jun 11 13:46:46 2019:      * Checking firmware compatibility: 
+Tue Jun 11 13:46:46 2019:      * FET firmware is up to date.
+Tue Jun 11 13:46:46 2019:      * Reading FW version...
+Tue Jun 11 13:46:46 2019:      * Debugger does not support target voltages other than 3000 mV!
+Tue Jun 11 13:46:46 2019:      * Setting VCC to 3000 mV...done
+Tue Jun 11 13:46:48 2019:      * Accessing device...done
+Tue Jun 11 13:46:48 2019:      * Reading device information...done
+Tue Jun 11 13:46:48 2019:      * Loading file into device...done
+Tue Jun 11 13:46:50 2019:      * Verifying memory (B:\binaries\MSP_EXP430FR5994_16MHz.txt)...done
+Tue Jun 11 13:46:52 2019:      * 
+Tue Jun 11 13:46:52 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 13:46:52 2019:      * Arguments   : -s -m SBW2 -n MSP430FR5994 -v -w B:\binaries\MSP_EXP430FR5994_16MHz.txt -z [RESET,VCC] 
+Tue Jun 11 13:46:52 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 13:46:52 2019:      * Driver      : loaded
+Tue Jun 11 13:46:52 2019:      * Dll Version : 31300001
+Tue Jun 11 13:46:52 2019:      * FwVersion   : 31200000
+Tue Jun 11 13:46:52 2019:      * Interface   : TIUSB
+Tue Jun 11 13:46:52 2019:      * HwVersion   : E 4.0
+Tue Jun 11 13:46:52 2019:      * JTAG Mode   : AUTO
+Tue Jun 11 13:46:52 2019:      * Device      : MSP430FR5994
+Tue Jun 11 13:46:52 2019:      * EEM         : Level 5, ClockCntrl 2
+Tue Jun 11 13:46:52 2019:      * Erase Mode  : ERASE_ALL
+Tue Jun 11 13:46:52 2019:      * Prog.File   : B:\binaries\MSP_EXP430FR5994_16MHz.txt
+Tue Jun 11 13:46:52 2019:      * Verified    : TRUE
+Tue Jun 11 13:46:52 2019:      * BSL Unlock  : FALSE
+Tue Jun 11 13:46:52 2019:      * InfoA Access: FALSE
+Tue Jun 11 13:46:52 2019:      * VCC ON      : 3000 mV
+Tue Jun 11 13:46:52 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 13:46:52 2019:      * Resetting device (RST/NMI)...done
+Tue Jun 11 13:46:53 2019:      * Starting target code execution...done
+Tue Jun 11 13:46:53 2019:      * Disconnecting from device...done
+Tue Jun 11 13:46:53 2019:      * 
+Tue Jun 11 13:46:53 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 13:46:53 2019:      * Driver      : closed (No error)
+Tue Jun 11 13:46:53 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 13:46:53 2019:      */
+Tue Jun 11 13:48:24 2019:      * -----/|-------------------------------------------------------------------- *
+Tue Jun 11 13:48:24 2019:      *     / |__                                                                   *
+Tue Jun 11 13:48:24 2019:      *    /_   /   MSP Flasher v1.3.18                                             *
+Tue Jun 11 13:48:24 2019:      *      | /                                                                    *
+Tue Jun 11 13:48:24 2019:      * -----|/-------------------------------------------------------------------- *
+Tue Jun 11 13:48:24 2019:      *
+Tue Jun 11 13:48:24 2019:      * Evaluating triggers...done
+Tue Jun 11 13:48:24 2019:      * Checking for available FET debuggers: 
+Tue Jun 11 13:48:25 2019:      * Found USB FET @ COM4 <- Selected
+Tue Jun 11 13:48:25 2019:      * Initializing interface @ COM4...done
+Tue Jun 11 13:48:25 2019:      * Checking firmware compatibility: 
+Tue Jun 11 13:48:25 2019:      * FET firmware is up to date.
+Tue Jun 11 13:48:25 2019:      * Reading FW version...
+Tue Jun 11 13:48:25 2019:      * Debugger does not support target voltages other than 3000 mV!
+Tue Jun 11 13:48:25 2019:      * Setting VCC to 3000 mV...done
+Tue Jun 11 13:48:27 2019:      * Accessing device...done
+Tue Jun 11 13:48:27 2019:      * Reading device information...done
+Tue Jun 11 13:48:27 2019:      * Loading file into device...done
+Tue Jun 11 13:48:29 2019:      * Verifying memory (B:\binaries\MSP_EXP430FR5994_16MHz.txt)...done
+Tue Jun 11 13:48:31 2019:      * 
+Tue Jun 11 13:48:31 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 13:48:31 2019:      * Arguments   : -s -m SBW2 -n MSP430FR5994 -v -w B:\binaries\MSP_EXP430FR5994_16MHz.txt -z [RESET,VCC] 
+Tue Jun 11 13:48:31 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 13:48:31 2019:      * Driver      : loaded
+Tue Jun 11 13:48:31 2019:      * Dll Version : 31300001
+Tue Jun 11 13:48:31 2019:      * FwVersion   : 31200000
+Tue Jun 11 13:48:31 2019:      * Interface   : TIUSB
+Tue Jun 11 13:48:31 2019:      * HwVersion   : E 4.0
+Tue Jun 11 13:48:31 2019:      * JTAG Mode   : AUTO
+Tue Jun 11 13:48:31 2019:      * Device      : MSP430FR5994
+Tue Jun 11 13:48:31 2019:      * EEM         : Level 5, ClockCntrl 2
+Tue Jun 11 13:48:31 2019:      * Erase Mode  : ERASE_ALL
+Tue Jun 11 13:48:31 2019:      * Prog.File   : B:\binaries\MSP_EXP430FR5994_16MHz.txt
+Tue Jun 11 13:48:31 2019:      * Verified    : TRUE
+Tue Jun 11 13:48:31 2019:      * BSL Unlock  : FALSE
+Tue Jun 11 13:48:31 2019:      * InfoA Access: FALSE
+Tue Jun 11 13:48:31 2019:      * VCC ON      : 3000 mV
+Tue Jun 11 13:48:31 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 13:48:31 2019:      * Resetting device (RST/NMI)...done
+Tue Jun 11 13:48:32 2019:      * Starting target code execution...done
+Tue Jun 11 13:48:32 2019:      * Disconnecting from device...done
+Tue Jun 11 13:48:32 2019:      * 
+Tue Jun 11 13:48:32 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 13:48:32 2019:      * Driver      : closed (No error)
+Tue Jun 11 13:48:32 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 13:48:32 2019:      */
+Tue Jun 11 14:01:29 2019:      * -----/|-------------------------------------------------------------------- *
+Tue Jun 11 14:01:29 2019:      *     / |__                                                                   *
+Tue Jun 11 14:01:29 2019:      *    /_   /   MSP Flasher v1.3.18                                             *
+Tue Jun 11 14:01:29 2019:      *      | /                                                                    *
+Tue Jun 11 14:01:29 2019:      * -----|/-------------------------------------------------------------------- *
+Tue Jun 11 14:01:29 2019:      *
+Tue Jun 11 14:01:29 2019:      * Evaluating triggers...done
+Tue Jun 11 14:01:29 2019:      * Checking for available FET debuggers: 
+Tue Jun 11 14:01:30 2019:      * Found USB FET @ COM4 <- Selected
+Tue Jun 11 14:01:30 2019:      * Initializing interface @ COM4...done
+Tue Jun 11 14:01:30 2019:      * Checking firmware compatibility: 
+Tue Jun 11 14:01:30 2019:      * FET firmware is up to date.
+Tue Jun 11 14:01:30 2019:      * Reading FW version...
+Tue Jun 11 14:01:30 2019:      * Debugger does not support target voltages other than 3000 mV!
+Tue Jun 11 14:01:30 2019:      * Setting VCC to 3000 mV...done
+Tue Jun 11 14:01:30 2019:      * Accessing device...done
+Tue Jun 11 14:01:31 2019:      * Reading device information...done
+Tue Jun 11 14:01:31 2019:      * Loading file into device...done
+Tue Jun 11 14:01:33 2019:      * Verifying memory (B:\binaries\MSP_EXP430FR5994_16MHz.txt)...done
+Tue Jun 11 14:01:34 2019:      * 
+Tue Jun 11 14:01:34 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 14:01:34 2019:      * Arguments   : -s -m SBW2 -n MSP430FR5994 -v -w B:\binaries\MSP_EXP430FR5994_16MHz.txt -z [RESET,VCC] 
+Tue Jun 11 14:01:34 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 14:01:34 2019:      * Driver      : loaded
+Tue Jun 11 14:01:34 2019:      * Dll Version : 31300001
+Tue Jun 11 14:01:34 2019:      * FwVersion   : 31200000
+Tue Jun 11 14:01:34 2019:      * Interface   : TIUSB
+Tue Jun 11 14:01:34 2019:      * HwVersion   : E 4.0
+Tue Jun 11 14:01:34 2019:      * JTAG Mode   : AUTO
+Tue Jun 11 14:01:34 2019:      * Device      : MSP430FR5994
+Tue Jun 11 14:01:34 2019:      * EEM         : Level 5, ClockCntrl 2
+Tue Jun 11 14:01:34 2019:      * Erase Mode  : ERASE_ALL
+Tue Jun 11 14:01:34 2019:      * Prog.File   : B:\binaries\MSP_EXP430FR5994_16MHz.txt
+Tue Jun 11 14:01:34 2019:      * Verified    : TRUE
+Tue Jun 11 14:01:34 2019:      * BSL Unlock  : FALSE
+Tue Jun 11 14:01:34 2019:      * InfoA Access: FALSE
+Tue Jun 11 14:01:34 2019:      * VCC ON      : 3000 mV
+Tue Jun 11 14:01:34 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 14:01:34 2019:      * Resetting device (RST/NMI)...done
+Tue Jun 11 14:01:35 2019:      * Starting target code execution...done
+Tue Jun 11 14:01:36 2019:      * Disconnecting from device...done
+Tue Jun 11 14:01:36 2019:      * 
+Tue Jun 11 14:01:36 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 14:01:36 2019:      * Driver      : closed (No error)
+Tue Jun 11 14:01:36 2019:      * ----------------------------------------------------------------------------
+Tue Jun 11 14:01:36 2019:      */
index 0253642..5da19d6 100644 (file)
 @1800
-10 00 08 00 A1 F7 80 3E 05 00 18 00 D2 98 8A 8E
-2C 01 7B B0 FC 83 0E 84
+10 00 08 00 A1 F7 80 3E 05 00 18 00 68 96 D0 8C
+2D 01 6B B0 B6 82 C8 82
 @8000
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 80
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 80 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 80 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 80 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 80 02 3E 52 00
-0E 12 3E 4F 30 4D 96 80 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 80 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 80 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 80 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 81 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 80 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 81 02 31 2D 00
-1E 83 30 4D D8 80 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 81
-02 30 3D 00 1E 83 0E 7E 30 4D 60 81 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 81 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 80 01 3E 3E 8F F4 3B EB 37 0E 81 02 42 4C 00
-85 12 20 00 AC 81 04 42 41 53 45 00 85 12 DC 21
-C8 80 05 53 54 41 54 45 85 12 BE 21 96 81 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 81 06 55 4D 2F
-4D 4F 44 00 30 12 62 80 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 80 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 81
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 81 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 82
-02 23 53 00 87 12 32 82 6A 82 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 82 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 81 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 81
-02 44 2E 00 87 12 D2 81 44 80 B0 80 4C 81 64 82
-BC 80 A2 82 7E 82 14 85 DC 84 2A 80 DC 81 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 80
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 82 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 80
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A 82
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 82 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 82 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 81 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 83 03 4B 45 59 30 40 A0 83
-18 42 8C 05 2F 83 8F 4E 00 00 B0 12 FC 83 92 B3
-9C 05 FD 27 1E 42 8C 05 B0 12 0E 84 30 4D 00 83
-06 41 43 43 45 50 54 00 3C 40 6A 84 3B 40 34 84
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E 84 92 B3 9C 05 05 24 18 42 8C 05 38 90
-0A 00 04 20 21 53 39 40 22 84 4D 15 A2 B3 9C 05
-FD 27 B2 40 11 00 8E 05 D2 C3 03 02 30 41 B2 40
-13 00 8E 05 D2 D3 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 84 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 8C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 9C 05 FD 27 82 48 8E 05 30 4D 60 84
-2D 83 92 B3 9C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 82 04 45 4D 49 54 00 30 40 8C 84 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 84 04 45 43 48
-4F 00 B2 40 82 48 58 84 82 43 DE 21 30 4D E0 82
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 84 92 43
-DE 21 30 4D 9C 82 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 84 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE 84 EF 3F 00 85
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 83 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A 85 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C 85 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 83 02 43
-52 00 30 40 46 85 87 12 52 85 02 0D 0A 00 14 85
-2A 80 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA 84 82 53 22 00 82 43 B4 21
-87 12 34 80 52 85 C8 87 34 80 22 00 B6 85 80 85
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 84 82 2E
-22 00 87 12 6C 85 34 80 14 85 C8 87 2A 80 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 80
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 80
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 80
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 80 02 3E 52 00 0E 12 3E 4F 30 4D 70 80 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 80 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 80 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 80
+01 21 BE 4F 00 00 3E 4F 30 4D CC 80 02 30 3D 00
+1E 83 0E 7E 30 4D FC 80 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 81 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 81 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 81 02 23 53 00 87 12 88 81 C0 81
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 81
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 80 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 81 34 80 86 80 D4 80 BA 81
+92 80 F8 81 D4 81 D6 83 42 87 82 83 2A 80 22 81
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 81 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 82 18 42 8C 05 2F 83 8F 4E
+00 00 B0 12 B6 82 92 B3 9C 05 FD 27 1E 42 8C 05
+B0 12 C8 82 30 4D A2 B3 9C 05 FD 27 B2 40 11 00
+8E 05 D2 C3 03 02 30 41 B2 40 13 00 8E 05 D2 D3
+03 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 82
+B0 12 B6 82 12 D2 0A 18 F9 3F F0 80 06 41 43 43
+45 50 54 00 3C 40 64 83 3B 40 2E 83 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 83
+92 B3 9C 05 05 24 18 42 8C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 8C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 9C 05
+FD 27 82 48 8E 05 30 4D 5A 83 2D 83 92 B3 9C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 80 04 45 4D 49
+54 00 30 40 86 83 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C 83 04 45 43 48 4F 00 B2 40 82 48
+52 83 82 43 DE 21 30 4D 32 82 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 83 92 43 DE 21 30 4D 20 82
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 83
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 83 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 81
+02 43 52 00 30 40 08 84 87 12 1E 84 02 0D 0A 00
+D6 83 2A 80 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 81 82 53 22 00 82 43 B4 21 87 12 14 84
+1E 84 B0 86 14 84 22 00 80 84 4C 84 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA 83 82 2E 22 00 87 12 38 84 14 84 D6 83
+B0 86 2A 80 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,302 +86,281 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E 80 34 40 00 80 30 4D A2 81 07 3E
+00 00 35 40 0E 80 34 40 00 80 30 4D 82 80 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 87 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 87 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 81
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC 84 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 81 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 87 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 80 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E 85 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A 88 B0 81
-B6 85 44 88 3D 40 4C 88 E2 22 5D 3E 4E 88 0A 4E
-3E 4F 3D 40 64 88 39 27 3D 40 3E 88 1A E2 BE 21
-B3 27 AD 23 66 88 3E 4F 3D 40 3E 88 BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 8B
-CD 3F B6 87 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A 80 3A 88
-A2 88 B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C 81 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 85 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 85 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 81 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 82 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 80 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC 82 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 83 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 86 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 84 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 84 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 87 42 87 80 84 50 87
+3D 40 58 87 CC 22 82 3E 5A 87 0A 4E 3E 4F 3D 40
+70 87 23 27 3D 40 4A 87 1A E2 BE 21 A1 27 B5 23
+72 87 3E 4F 3D 40 4A 87 B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 8A CB 3F D2 86
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 80 46 87 AE 87 B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 81 04 51 55 49 54 00 82 43 08 18 31 40
 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A 80
-42 85 92 84 DC 84 3A 88 DE 80 70 81 52 85 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E 89 34 80
-30 FF F2 82 8A 81 52 85 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E 89 24 83 D0 88 C0 83 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C 89 86 41 42 4F 52 54
-22 00 87 12 6C 85 34 80 2E 89 C8 87 2A 80 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 90 B0 12
-FC 83 92 C3 9C 05 38 40 A0 AA 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 9C 05 F2 23 87 12
-6A 90 34 80 DE 21 F2 80 B2 84 52 85 04 1B 5B 37
-6D 00 14 85 54 80 28 83 8A 89 42 85 52 85 05 6C
-69 6E 65 3A 14 85 40 81 D2 82 14 85 52 85 04 1B
-5B 30 6D 00 14 85 12 89 00 00 83 5B 27 5D 87 12
-B0 89 34 80 34 80 C8 87 C8 87 2A 80 08 86 01 27
-87 12 B0 81 B6 85 0E 86 28 83 BE 89 2A 80 6E 88
-CE 81 81 5C 92 42 C0 21 C4 21 30 4D 9A 89 81 5B
-82 43 BE 21 30 4D C2 89 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 83 82 49 53 00 87 12
-C8 81 F2 80 28 83 02 8A 9E 89 34 80 E0 89 C8 87
-2A 80 B0 89 E0 89 2A 80 EA 89 09 49 4D 4D 45 44
+04 84 8C 83 42 87 82 83 46 87 A4 80 0C 81 1E 84
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 88
+14 84 30 FF A0 86 26 81 1E 84 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 88 3C 82 E0 87 C2 86 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E 88 86 41 42 4F
+52 54 22 00 87 12 38 84 14 84 40 88 B0 86 2A 80
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 8D
+B0 12 B6 82 92 C3 9C 05 38 40 A0 AA 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 9C 05 F3 23 87 12
+42 8D 14 84 DE 21 EA 80 AC 83 1E 84 04 1B 5B 37
+6D 00 D6 83 58 80 40 82 9A 88 04 84 1E 84 05 6C
+69 6E 65 3A D6 83 D0 80 24 82 D6 83 1E 84 04 1B
+5B 30 6D 00 D6 83 24 88 00 00 83 5B 27 5D 87 12
+C0 88 14 84 14 84 B0 86 B0 86 2A 80 E8 84 01 27
+87 12 42 87 80 84 EE 84 40 82 CE 88 2A 80 7A 87
+32 81 81 5C 92 42 C0 21 C4 21 30 4D AA 88 81 5B
+82 43 BE 21 30 4D D2 88 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 86 82 49 53 00 87 12
+BE 87 EA 80 40 82 12 89 AE 88 14 84 F0 88 B0 86
+2A 80 C0 88 F0 88 2A 80 FA 88 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 85 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 88 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 81 B6 85 0E 86 54 80
-28 83 BE 89 70 81 28 83 66 8A 34 80 34 80 C8 87
-C8 87 34 80 C8 87 C8 87 2A 80 CE 89 81 3B 82 93
-BE 21 A8 27 87 12 34 80 2A 80 C8 87 04 8B D0 89
-2A 80 6C 8A 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 8A BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 8A 01 3A 30 12 A4 8A
-87 12 92 85 B0 81 B6 85 CA 8A 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 8A 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 85
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A 89 B0 85 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 8A BA 40 86 12 FC FF E4 3F 16 88 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 8A BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C 8B 06 43 52 45 41 54
-45 00 B0 12 C0 8A BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 88 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 8B 05 44
-45 46 45 52 30 12 12 8B 8B 3F 6E 86 05 3E 42 4F
-44 59 2E 52 30 4D 6A 8B 04 43 4F 44 45 00 B0 12
-C0 8A 2A 82 82 4A C6 21 87 12 B2 8A 94 8E 66 8E
-2A 80 B8 8B 07 43 4F 44 45 4E 4E 4D 87 12 8C 8A
-D0 89 C2 8B 2A 80 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE 8E 04 8B 2A 80 1A 89 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A 8E DA 21 D9 3F E8 8B 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE 8E 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A 80 02 00 A2 52 C6 21 ED 3F 0A 8A 85 48 49 32
-4C 4F 87 12 F2 82 8C 8C C8 87 D0 89 94 8E 66 8E
-2A 80 5C 8C 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 83 00 00 2E 53 30 4D
-9E 8B 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 83 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E 85 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 8B 85 42 45 47 49 4E 30 40 F2 82 B2 8C
-85 55 4E 54 49 4C 39 40 28 83 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA 8B
-85 41 47 41 49 4E 39 40 24 83 EF 3F 34 8B 85 57
-48 49 4C 45 87 12 78 8C 78 80 2A 80 22 8A 86 52
-45 50 45 41 54 00 87 12 F6 8C B8 8C 2A 80 92 8C
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C 83 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA 87 84 4C 4F 4F 50 00 39 40
-5E 83 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 83 85 2B 4C 4F
-4F 50 39 40 4C 83 E5 3F 48 8D 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E 83 00 00 BA 40 24 83 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A 8D 04 4D 4F 56 45 00 0A 4E
+C4 87 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 87
+80 84 EE 84 58 80 40 82 CE 88 0C 81 40 82 5C 89
+14 84 14 84 B0 86 B0 86 14 84 B0 86 B0 86 2A 80
+DE 88 81 3B 82 93 BE 21 B5 27 87 12 14 84 2A 80
+B0 86 FA 89 E0 88 2A 80 62 89 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 89 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A 89 01 3A 30 12 A0 89 92 B3 C6 21 A2 63 C6 21
+87 12 42 87 80 84 C8 89 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 84 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 88 90 87 05 44 45 46 45 52
+B0 12 B8 89 BA 40 30 40 FC FF BA 40 AE 89 FE FF
+E3 3F 1E 87 06 43 52 45 41 54 45 00 B0 12 B8 89
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 8A 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 85 05 3E 42 4F 44 59 2E 52
+30 4D 44 8A 04 43 4F 44 45 00 B0 12 B8 89 A2 82
+C6 21 87 12 D2 8C AC 8C 2A 80 84 8A 07 43 4F 44
+45 4E 4E 4D B0 12 86 89 F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 8C FA 89 2A 80 2C 88 03 41
+53 4D B2 40 B0 8C DA 21 E0 3F AC 8A 06 45 4E 44
+41 53 4D 00 87 12 B4 8A F4 8C 2A 80 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 8C 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A 80
+02 00 A2 52 C6 21 ED 3F 1A 89 85 48 49 32 4C 4F
+87 12 A0 86 4A 8B B0 86 E0 88 D2 8C AC 8C 2A 80
+1A 8B 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 82 00 00 2E 53 30 4D 5E 8A
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C 82 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 83
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C 8A 85 42 45 47 49 4E 30 40 A0 86 70 8B 85 55
+4E 54 49 4C 39 40 40 82 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE 8A 85 41
+47 41 49 4E 39 40 3C 82 EF 3F 7A 84 85 57 48 49
+4C 45 87 12 36 8B 76 80 2A 80 34 84 86 52 45 50
+45 41 54 00 87 12 B4 8B 76 8B 2A 80 50 8B 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 82 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 86 84 4C 4F 4F 50 00 39 40 76 82
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 82 85 2B 4C 4F 4F 50
+39 40 64 82 E5 3F 06 8C 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE 8C
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 8B
-34 80 10 00 34 80 00 00 3C 83 34 80 00 00 C8 87
-5E 83 0A 8E F2 82 34 80 C8 21 44 80 F2 80 C8 87
-FA 80 8A 8B 34 80 CA 21 FA 80 2A 80 AE 89 05 46
-4F 52 54 48 84 12 24 8E 8E 8E C2 91 CC 8E 2E 8E
-74 8C 7C 8D F8 8F BE 8E 8E 90 A8 90 D0 8C 34 91
-00 00 CC 8F D8 89 AC 8B 00 00 F0 8C 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 8E BC 97 24 98 70 97
-8E 98 36 97 B2 98 62 94 00 00 2C 97 DC 97 8E 97
-CC 97 72 95 00 00 00 00 C0 98 58 8E 5C 8E 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C 8A 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E 85 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 8D 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 8C 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA 8A 86 5B 54 48 45 4E 5D 00 30 4D 14 8F
-86 5B 45 4C 53 45 5D 00 87 12 34 80 00 00 36 81
-B0 81 B6 85 1C 88 44 80 28 83 8E 8F 8A 80 8A 80
-52 85 06 5B 54 48 45 4E 5D 00 EA 8E 32 83 5C 8F
-36 85 40 81 54 80 32 83 30 8F 2A 80 8A 80 8A 80
-52 85 06 5B 45 4C 53 45 5D 00 EA 8E 32 83 7C 8F
-36 85 40 81 54 80 32 83 2E 8F 2A 80 52 85 04 5B
-49 46 5D 00 EA 8E 32 83 30 8F 24 83 2E 8F 36 85
-52 85 05 0D 0A 6B 6F 20 14 85 92 84 2A 88 24 83
-30 8F 20 8F 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 8F 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 81 B6 85 0E 86 6C 80 2A 80 B4 8F 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 81 B6 85 0E 86
-6C 80 64 81 2A 80 E8 8F 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 8D 06 4D 41 52 4B 45 52 00
-B0 12 C0 8A BA 40 84 12 FC FF BA 40 E6 8F FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A 8B 34 8E C4 8E D8 8E 2C 90 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 8E
-09 50 57 52 5F 53 54 41 54 45 84 12 24 90 8A 8E
-D2 98 0E 8D 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E 90 92 42 0C 18 70 90 EF 3F 60 90 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E 90 92 42
-C6 21 70 90 30 4D 74 90 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 8D 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 84 24 84 B2 40 3E 91 3C 91
-B2 40 8A 8E 0E 18 B2 40 D2 98 0C 18 30 12 7E 90
-B2 40 8C 84 8A 84 B2 40 46 85 44 85 B2 40 A0 83
-9E 83 B2 40 18 00 0A 18 37 40 1A 80 36 40 BC 80
-35 40 0E 80 34 40 00 80 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 90 04 57 41 52 4D 00 30 40 3E 91 3D 40
-72 91 92 C3 30 01 1E 42 08 18 0E 93 11 24 F2 B2
-21 02 02 20 3E E3 1E 53 F2 D0 0C 00 2B 02 3E 90
-0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27 87 2F
-30 4D 52 85 06 0D 1B 5B 37 6D 23 00 14 85 E2 82
-52 85 1F 46 61 73 74 46 6F 72 74 68 20 56 33 30
-30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
-73 20 14 85 34 80 80 FF F2 82 28 81 D2 82 52 85
-0B 62 79 74 65 73 20 66 72 65 65 20 24 83 8A 89
-E2 8E 04 43 4F 4C 44 00 92 B3 8A 05 FD 23 B2 40
-04 A5 20 01 B2 40 88 5A CC 01 B2 43 06 02 92 43
-04 02 B2 40 FE FF 02 02 D2 D3 05 02 F2 43 22 02
-F2 D3 26 02 F2 D0 BF 00 47 02 F2 40 BF 00 43 02
-F2 40 40 00 45 02 F2 40 A5 00 A1 01 F2 40 10 00
-A0 01 D2 43 A1 01 B2 40 00 A5 60 01 B2 40 FF 1E
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 84
+CA 21 F2 80 2A 80 84 12 7E 8C AE 8B 4E 8F DE 8B
+BE 88 32 8B 3A 8C 62 90 64 84 66 8D 80 8D 8E 8B
+00 8E 00 00 34 90 E8 88 78 8A 00 00 84 12 7E 8C
+80 95 E2 95 34 95 56 96 FA 94 00 00 2A 92 00 00
+F0 94 A0 95 52 95 90 95 3A 93 00 00 00 00 32 96
+AA 8C 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 8C EE 8C
+F4 8C 04 8D 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 89 09 50 57 52 5F 53 54 41
+54 45 84 12 FC 8C D0 8C 68 96 CC 8B 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 8D 92 42 0C 18
+48 8D EF 3F 38 8D 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 8D 92 42 C6 21 48 8D 30 4D 4C 8D
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC 8B 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 82
+DE 82 B2 40 0A 8E 08 8E B2 40 D0 8C 0E 18 B2 40
+68 96 0C 18 30 12 56 8D B2 40 86 83 84 83 B2 40
+08 84 06 84 B2 40 98 82 96 82 B2 40 18 00 0A 18
+37 40 1A 80 36 40 92 80 35 40 0E 80 34 40 00 80
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A 8D
+04 57 41 52 4D 00 30 40 0A 8E 3D 40 3E 8E 92 C3
+30 01 1E 42 08 18 0E 93 11 24 F2 B2 21 02 02 20
+3E E3 1E 53 F2 D0 0C 00 2B 02 3E 90 0A 00 B8 27
+3E 90 16 00 B5 2F 2E 93 84 27 8D 2F 30 4D 1E 84
+06 0D 1B 5B 37 6D 23 00 D6 83 34 82 1E 84 19 46
+61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54
+68 6F 6F 72 65 6E 73 20 D6 83 14 84 30 FF A0 86
+B8 80 24 82 1E 84 0A 62 79 74 65 73 20 66 72 65
+65 00 3C 82 9A 88 82 8B 04 43 4F 4C 44 00 92 B3
+8A 05 FD 23 B2 40 04 A5 20 01 3E 8E B2 40 88 5A
+CC 01 B2 43 06 02 B2 40 FE FF 02 02 D2 D3 05 02
+F2 D3 26 02 F2 43 22 02 F2 D3 47 02 F2 40 BF 00
+43 02 F2 40 A5 00 A1 01 F2 40 10 00 A0 01 D2 43
+A1 01 B2 40 00 A5 60 01 82 43 88 01 B2 40 FF 1E
 80 01 B2 40 BA 00 82 01 B2 40 E8 01 84 01 39 40
-00 01 82 43 88 01 92 D2 5E 01 08 18 38 40 59 14
-18 83 FE 23 19 83 FA 23 39 40 00 10 29 83 89 43
-00 20 FC 23 39 40 32 00 29 83 B9 40 D4 91 CE FF
-FB 23 B2 40 2C 84 E2 FF B2 40 81 00 80 05 92 42
-02 18 86 05 92 42 04 18 88 05 92 C3 80 05 92 D3
-9A 05 3F 40 80 20 31 40 E0 20 30 12 3A 91 39 3F
-38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21 09 9A
-03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A C4 21
-30 4D 1C 15 B0 12 2A 80 B6 85 0E 86 32 83 C8 92
-CA 86 28 83 BE 89 EA 92 CA 92 29 4E 39 90 86 12
-02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E 02 00
-04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41 3E 40
-28 00 B0 12 B2 92 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53 C4 21
-B0 12 2A 80 B6 85 CA 86 28 83 28 93 1E 93 21 53
-3E 90 10 00 83 2D E1 2B 2A 93 B2 41 C4 21 DD 3F
-87 12 B0 81 90 92 38 93 0C 43 1B 42 C6 21 A2 53
-C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53 C4 21
-B0 12 B2 92 0E 93 03 20 3C 40 00 03 21 3C 1E 93
-03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40 20 03
-17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92 03 20
-3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03 08 3C
-3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02
-92 53 C4 21 B0 12 B2 92 ED 3F 7A 90 40 00 16 20
-3C 40 20 00 92 53 C4 21 B0 12 06 93 0C 20 3C 50
-10 00 3E 40 2B 00 B0 12 06 93 92 92 C0 21 C4 21
-02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12 06 93
-FA 23 3C 50 10 00 B0 12 EE 92 EF 3F 0C 43 1B 42
-C6 21 A2 53 C6 21 87 12 B0 81 90 92 0E 94 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F
-B0 12 06 93 E1 23 3C 50 80 00 B0 12 EE 92 DC 3F
-1C 84 04 52 45 54 49 00 87 12 34 80 00 13 C8 87
-2A 80 34 80 2C 00 30 93 06 94 4C 94 2E 4E 0E DC
-09 4B A4 3F 3E 8C 03 4D 4F 56 84 12 42 94 00 40
-56 94 05 4D 4F 56 2E 42 84 12 42 94 40 40 00 00
-03 41 44 44 84 12 42 94 00 50 70 94 05 41 44 44
-2E 42 84 12 42 94 40 50 7C 94 04 41 44 44 43 00
-84 12 42 94 00 60 8A 94 06 41 44 44 43 2E 42 00
-84 12 42 94 40 60 32 94 04 53 55 42 43 00 84 12
-42 94 00 70 A8 94 06 53 55 42 43 2E 42 00 84 12
-42 94 40 70 B6 94 03 53 55 42 84 12 42 94 00 80
-C6 94 05 53 55 42 2E 42 84 12 42 94 40 80 20 8C
-03 43 4D 50 84 12 42 94 00 90 E0 94 05 43 4D 50
-2E 42 84 12 42 94 40 90 0E 8C 04 44 41 44 44 00
-84 12 42 94 00 A0 FA 94 06 44 41 44 44 2E 42 00
-84 12 42 94 40 A0 EC 94 03 42 49 54 84 12 42 94
-00 B0 18 95 05 42 49 54 2E 42 84 12 42 94 40 B0
-24 95 03 42 49 43 84 12 42 94 00 C0 32 95 05 42
-49 43 2E 42 84 12 42 94 40 C0 3E 95 03 42 49 53
-84 12 42 94 00 D0 4C 95 05 42 49 53 2E 42 84 12
-42 94 40 D0 00 00 03 58 4F 52 84 12 42 94 00 E0
-66 95 05 58 4F 52 2E 42 84 12 42 94 40 E0 98 94
-03 41 4E 44 84 12 42 94 00 F0 80 95 05 41 4E 44
-2E 42 84 12 42 94 40 F0 B0 81 30 93 9E 95 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F D2 94
-03 52 52 43 84 12 98 95 00 10 B0 95 05 52 52 43
-2E 42 84 12 98 95 40 10 BC 95 04 53 57 50 42 00
-84 12 98 95 80 10 CA 95 03 52 52 41 84 12 98 95
-00 11 D8 95 05 52 52 41 2E 42 84 12 98 95 40 11
-E4 95 03 53 58 54 84 12 98 95 80 11 00 00 04 50
-55 53 48 00 84 12 98 95 00 12 FE 95 06 50 55 53
-48 2E 42 00 84 12 98 95 40 12 58 95 04 43 41 4C
-4C 00 84 12 98 95 80 12 1A 53 0E 4A 87 12 E2 82
-52 85 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
-3A 89 B0 81 90 92 48 96 92 53 C4 21 3E 40 2C 00
-B0 12 2A 80 B6 85 CA 86 28 83 BE 89 FC 93 60 96
-0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C
-59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E
-94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F F2 95 04 52
-52 43 4D 00 84 12 42 96 50 00 8E 96 04 52 52 41
-4D 00 84 12 42 96 50 01 9C 96 04 52 4C 41 4D 00
-84 12 42 96 50 02 AA 96 04 52 52 55 4D 00 84 12
-42 96 50 03 0C 96 05 50 55 53 48 4D 84 12 42 96
-00 15 C6 96 04 50 4F 50 4D 00 84 12 42 96 00 17
-85 12 00 3C B8 96 03 53 3E 3D 85 12 00 38 E6 96
-02 53 3C 00 85 12 00 34 D4 96 03 30 3E 3D 85 12
-00 30 FA 96 02 30 3C 00 85 12 00 30 00 00 02 55
-3C 00 85 12 00 2C 0E 97 03 55 3E 3D 85 12 00 28
-04 97 03 30 3C 3E 85 12 00 24 22 97 02 30 3D 00
-85 12 00 20 00 00 02 49 46 00 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 0E 4A 30 4D 18 97 04 54 48 45
-4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53 0A 89
-0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D 08 95
-04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C 00 00
-A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 4C 97 05 55
-4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21 2A 83
-0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03 08 DA
-89 48 00 00 A2 53 C6 21 30 4D 8C 95 05 41 47 41
-49 4E 87 12 E0 96 94 97 2A 80 00 00 05 57 48 49
-4C 45 87 12 3A 97 78 80 2A 80 F0 96 06 52 45 50
-45 41 54 00 87 12 E0 96 94 97 52 97 2A 80 F0 97
-3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43 00 00
-CA 23 98 42 C6 21 00 00 30 4D 1C 96 03 42 57 31
-84 12 EE 97 E0 21 0C 98 03 42 57 32 84 12 EE 97
-E2 21 18 98 03 42 57 33 84 12 EE 97 E4 21 30 98
-3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43 00 00
-8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F
-30 4D 00 00 03 46 57 31 84 12 2E 98 E6 21 54 98
-03 46 57 32 84 12 2E 98 E8 21 60 98 03 46 57 33
-84 12 2E 98 EA 21 3E 90 00 30 07 24 3E E0 00 04
-3E B0 00 10 02 24 3E E0 00 08 30 4D 6C 98 04 47
-4F 54 4F 00 87 12 E0 96 B0 89 BE 87 2A 80 00 00
-05 3F 47 4F 54 4F 87 12 76 98 B0 89 BE 87 2A 80
-00 00 03 4A 4D 50 87 12 B0 89 C2 97 2A 80 A0 98
-04 3F 4A 4D 50 00 87 12 76 98 B0 89 78 80 94 97
-2A 80
+00 01 92 D2 5E 01 08 18 38 40 59 14 18 83 FE 23
+19 83 FA 23 39 40 00 10 29 83 89 43 00 20 FC 23
+39 40 32 00 29 83 B9 40 9C 8E CE FF FB 23 B2 40
+26 83 E2 FF B2 40 81 00 80 05 92 42 02 18 86 05
+92 42 04 18 88 05 92 C3 80 05 92 D3 9A 05 3F 40
+80 20 31 40 E0 20 30 12 06 8E 47 3F 88 8E 07 43
+4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B
+0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53 F9 98
+FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D B2 89
+86 5B 54 48 45 4E 5D 00 30 4D 80 8F 86 5B 45 4C
+53 45 5D 00 87 12 14 84 00 00 C6 80 42 87 80 84
+24 87 34 80 40 82 F6 8F 44 80 1E 84 06 5B 54 48
+45 4E 5D 00 56 8F 4A 82 C6 8F F8 83 D0 80 58 80
+4A 82 9C 8F 2A 80 44 80 1E 84 06 5B 45 4C 53 45
+5D 00 56 8F 4A 82 E4 8F F8 83 D0 80 58 80 4A 82
+9A 8F 2A 80 1E 84 04 5B 49 46 5D 00 56 8F 4A 82
+9C 8F 3C 82 9A 8F F8 83 1E 84 05 0D 0A 6B 6F 20
+D6 83 8C 83 32 87 3C 82 9C 8F 8C 8F 84 5B 49 46
+5D 00 0E 93 3E 4F BE 27 30 4D 0C 90 89 5B 44 45
+46 49 4E 45 44 5D 87 12 42 87 80 84 EE 84 6A 80
+2A 80 1C 90 8B 5B 55 4E 44 45 46 49 4E 45 44 5D
+87 12 42 87 80 84 EE 84 6A 80 00 81 2A 80 50 90
+3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F 30 40 56 8D
+48 8C 06 4D 41 52 4B 45 52 00 B0 12 B8 89 BA 40
+84 12 FC FF BA 40 4E 90 FE FF 9A 42 C8 21 00 00
+28 83 8A 48 02 00 A2 52 C6 21 30 40 00 8A 1C 15
+B0 12 2A 80 80 84 EE 84 4A 82 A4 90 AA 85 40 82
+CE 88 BE 90 A6 90 39 4E 39 80 86 12 08 24 19 53
+02 20 2E 4E 04 3C 2E 53 19 53 01 24 2E 82 1B 17
+30 41 3E 40 28 00 B0 12 8E 90 19 42 C6 21 A2 53
+C6 21 89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 21
+92 53 C4 21 B0 12 2A 80 80 84 AA 85 40 82 FC 90
+F2 90 21 53 3E 90 10 00 7D 2D E1 2B FE 90 B2 41
+C4 21 DD 3F 87 12 42 87 74 84 0C 91 0C 43 1B 42
+C6 21 A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 27 20
+92 53 C4 21 B0 12 8E 90 3C 40 00 03 0E 93 1C 24
+3C 40 10 03 1E 93 18 24 3C 40 20 03 2E 93 14 24
+3C 40 20 02 2E 92 10 24 3C 40 30 02 3E 92 0C 24
+3C 40 30 03 3E 93 08 24 3C 40 30 00 19 42 C6 21
+A2 53 C6 21 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90
+26 00 07 20 3C 40 10 02 92 53 C4 21 B0 12 8E 90
+ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21
+B0 12 DA 90 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
+DA 90 92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10
+0C 5E DA 3F B0 12 DA 90 FA 23 3C 50 10 00 B0 12
+C2 90 EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 87 12
+42 87 74 84 D6 91 FE 90 26 00 00 00 3E 40 20 00
+03 20 3C 50 82 00 C8 3F B0 12 DA 90 E1 23 3C 50
+80 00 B0 12 C2 90 DC 3F D6 82 04 52 45 54 49 00
+87 12 14 84 00 13 B0 86 2A 80 14 84 2C 00 04 91
+CE 91 14 92 09 4B 2E 4E 0E DC A4 3F FC 8A 03 4D
+4F 56 84 12 0A 92 00 40 1E 92 05 4D 4F 56 2E 42
+84 12 0A 92 40 40 00 00 03 41 44 44 84 12 0A 92
+00 50 38 92 05 41 44 44 2E 42 84 12 0A 92 40 50
+44 92 04 41 44 44 43 00 84 12 0A 92 00 60 52 92
+06 41 44 44 43 2E 42 00 84 12 0A 92 40 60 FA 91
+04 53 55 42 43 00 84 12 0A 92 00 70 70 92 06 53
+55 42 43 2E 42 00 84 12 0A 92 40 70 7E 92 03 53
+55 42 84 12 0A 92 00 80 8E 92 05 53 55 42 2E 42
+84 12 0A 92 40 80 DE 8A 03 43 4D 50 84 12 0A 92
+00 90 A8 92 05 43 4D 50 2E 42 84 12 0A 92 40 90
+CC 8A 04 44 41 44 44 00 84 12 0A 92 00 A0 C2 92
+06 44 41 44 44 2E 42 00 84 12 0A 92 40 A0 B4 92
+03 42 49 54 84 12 0A 92 00 B0 E0 92 05 42 49 54
+2E 42 84 12 0A 92 40 B0 EC 92 03 42 49 43 84 12
+0A 92 00 C0 FA 92 05 42 49 43 2E 42 84 12 0A 92
+40 C0 06 93 03 42 49 53 84 12 0A 92 00 D0 14 93
+05 42 49 53 2E 42 84 12 0A 92 40 D0 00 00 03 58
+4F 52 84 12 0A 92 00 E0 2E 93 05 58 4F 52 2E 42
+84 12 0A 92 40 E0 60 92 03 41 4E 44 84 12 0A 92
+00 F0 48 93 05 41 4E 44 2E 42 84 12 0A 92 40 F0
+42 87 04 91 66 93 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4F 3F 9A 92 03 52 52 43 84 12 60 93
+00 10 78 93 05 52 52 43 2E 42 84 12 60 93 40 10
+84 93 04 53 57 50 42 00 84 12 60 93 80 10 92 93
+03 52 52 41 84 12 60 93 00 11 A0 93 05 52 52 41
+2E 42 84 12 60 93 40 11 AC 93 03 53 58 54 84 12
+60 93 80 11 00 00 04 50 55 53 48 00 84 12 60 93
+00 12 C6 93 06 50 55 53 48 2E 42 00 84 12 60 93
+40 12 20 93 04 43 41 4C 4C 00 84 12 60 93 80 12
+1A 53 0E 4A 87 12 34 82 1E 84 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 4C 88 42 87 74 84 10 94
+92 53 C4 21 3E 40 2C 00 B0 12 2A 80 80 84 AA 85
+40 82 CE 88 C4 91 28 94 0A 4E 3E 4F 1A 83 E0 33
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10
+5A 06 8F 3F BA 93 04 52 52 43 4D 00 84 12 0A 94
+50 00 56 94 04 52 52 41 4D 00 84 12 0A 94 50 01
+64 94 04 52 4C 41 4D 00 84 12 0A 94 50 02 72 94
+04 52 52 55 4D 00 84 12 0A 94 50 03 D4 93 05 50
+55 53 48 4D 84 12 0A 94 00 15 8E 94 04 50 4F 50
+4D 00 84 12 0A 94 00 17 80 94 03 53 3E 3D 85 12
+00 38 AA 94 02 53 3C 00 85 12 00 34 9C 94 03 30
+3E 3D 85 12 00 30 BE 94 02 30 3C 00 85 12 00 30
+00 00 02 55 3C 00 85 12 00 2C D2 94 03 55 3E 3D
+85 12 00 28 C8 94 03 30 3C 3E 85 12 00 24 E6 94
+02 30 3D 00 85 12 00 20 00 00 02 49 46 00 1A 42
+C6 21 8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D DC 94
+04 54 48 45 4E 00 1A 42 C6 21 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 63 2F 88 DA 00 00
+30 4D D0 92 04 45 4C 53 45 00 1A 42 C6 21 BA 40
+00 3C 00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F
+10 95 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C6 21 2A 83 0A 89 0A 11 3A 90 00 FE 42 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D 54 93
+05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+05 57 48 49 4C 45 87 12 FE 94 76 80 2A 80 B4 94
+06 52 45 50 45 41 54 00 87 12 86 95 16 95 2A 80
+B2 95 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CD 2F
+98 42 C6 21 00 00 30 4D E4 93 03 42 57 31 84 12
+B0 95 00 00 CA 95 03 42 57 32 84 12 B0 95 00 00
+D6 95 03 42 57 33 84 12 B0 95 00 00 EE 95 3D 41
+1A 42 C6 21 28 4E B2 92 C4 21 90 2B BA 4F 00 00
+A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
+57 31 84 12 EC 95 00 00 0E 96 03 46 57 32 84 12
+EC 95 00 00 1A 96 03 46 57 33 84 12 EC 95 00 00
+00 00 05 3F 47 4F 54 4F 3E 90 00 30 07 24 3E E0
+00 04 3E B0 00 10 02 24 3E E0 00 08 87 12 C0 88
+DA 86 2A 80 26 96 04 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C F2 3F
 @FFFE
-D4 91
+9C 8E
 q
index f3d334b..ae0f10f 100644 (file)
 @1800
-10 00 08 00 00 D6 E8 03 05 00 18 00 C2 98 8A 8E
-2C 01 7B B0 FC 83 0E 84
+10 00 08 00 00 D6 E8 03 05 00 18 00 58 96 D0 8C
+2D 01 6B B0 B6 82 C8 82
 @8000
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 80
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 80 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 80 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 80 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 80 02 3E 52 00
-0E 12 3E 4F 30 4D 96 80 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 80 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 80 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 80 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 81 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 80 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 81 02 31 2D 00
-1E 83 30 4D D8 80 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 81
-02 30 3D 00 1E 83 0E 7E 30 4D 60 81 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 81 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 80 01 3E 3E 8F F4 3B EB 37 0E 81 02 42 4C 00
-85 12 20 00 AC 81 04 42 41 53 45 00 85 12 DC 21
-C8 80 05 53 54 41 54 45 85 12 BE 21 96 81 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 81 06 55 4D 2F
-4D 4F 44 00 30 12 62 80 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 80 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 81
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 81 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 82
-02 23 53 00 87 12 32 82 6A 82 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 82 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 81 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 81
-02 44 2E 00 87 12 D2 81 44 80 B0 80 4C 81 64 82
-BC 80 A2 82 7E 82 14 85 DC 84 2A 80 DC 81 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 80
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 82 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 80
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A 82
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 82 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 82 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 81 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 83 03 4B 45 59 30 40 A0 83
-18 42 8C 05 2F 83 8F 4E 00 00 B0 12 FC 83 92 B3
-9C 05 FD 27 1E 42 8C 05 B0 12 0E 84 30 4D 00 83
-06 41 43 43 45 50 54 00 3C 40 6A 84 3B 40 34 84
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E 84 92 B3 9C 05 05 24 18 42 8C 05 38 90
-0A 00 04 20 21 53 39 40 22 84 4D 15 A2 B3 9C 05
-FD 27 B2 40 11 00 8E 05 D2 C3 03 02 30 41 B2 40
-13 00 8E 05 D2 D3 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 84 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 8C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 9C 05 FD 27 82 48 8E 05 30 4D 60 84
-2D 83 92 B3 9C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 82 04 45 4D 49 54 00 30 40 8C 84 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 84 04 45 43 48
-4F 00 B2 40 82 48 58 84 82 43 DE 21 30 4D E0 82
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 84 92 43
-DE 21 30 4D 9C 82 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 84 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE 84 EF 3F 00 85
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 83 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A 85 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C 85 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 83 02 43
-52 00 30 40 46 85 87 12 52 85 02 0D 0A 00 14 85
-2A 80 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA 84 82 53 22 00 82 43 B4 21
-87 12 34 80 52 85 C8 87 34 80 22 00 B6 85 80 85
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 84 82 2E
-22 00 87 12 6C 85 34 80 14 85 C8 87 2A 80 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 80
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 80
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 80
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 80 02 3E 52 00 0E 12 3E 4F 30 4D 70 80 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 80 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 80 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 80
+01 21 BE 4F 00 00 3E 4F 30 4D CC 80 02 30 3D 00
+1E 83 0E 7E 30 4D FC 80 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 81 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 81 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 81 02 23 53 00 87 12 88 81 C0 81
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 81
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 80 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 81 34 80 86 80 D4 80 BA 81
+92 80 F8 81 D4 81 D6 83 42 87 82 83 2A 80 22 81
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 81 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 82 18 42 8C 05 2F 83 8F 4E
+00 00 B0 12 B6 82 92 B3 9C 05 FD 27 1E 42 8C 05
+B0 12 C8 82 30 4D A2 B3 9C 05 FD 27 B2 40 11 00
+8E 05 D2 C3 03 02 30 41 B2 40 13 00 8E 05 D2 D3
+03 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 82
+B0 12 B6 82 12 D2 0A 18 F9 3F F0 80 06 41 43 43
+45 50 54 00 3C 40 64 83 3B 40 2E 83 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 83
+92 B3 9C 05 05 24 18 42 8C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 8C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 9C 05
+FD 27 82 48 8E 05 30 4D 5A 83 2D 83 92 B3 9C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 80 04 45 4D 49
+54 00 30 40 86 83 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C 83 04 45 43 48 4F 00 B2 40 82 48
+52 83 82 43 DE 21 30 4D 32 82 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 83 92 43 DE 21 30 4D 20 82
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 83
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 83 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 81
+02 43 52 00 30 40 08 84 87 12 1E 84 02 0D 0A 00
+D6 83 2A 80 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 81 82 53 22 00 82 43 B4 21 87 12 14 84
+1E 84 B0 86 14 84 22 00 80 84 4C 84 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA 83 82 2E 22 00 87 12 38 84 14 84 D6 83
+B0 86 2A 80 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,301 +86,280 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E 80 34 40 00 80 30 4D A2 81 07 3E
+00 00 35 40 0E 80 34 40 00 80 30 4D 82 80 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 87 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 87 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 81
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC 84 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 81 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 87 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 80 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E 85 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A 88 B0 81
-B6 85 44 88 3D 40 4C 88 E2 22 5D 3E 4E 88 0A 4E
-3E 4F 3D 40 64 88 39 27 3D 40 3E 88 1A E2 BE 21
-B3 27 AD 23 66 88 3E 4F 3D 40 3E 88 BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 8B
-CD 3F B6 87 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A 80 3A 88
-A2 88 B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C 81 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 85 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 85 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 81 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 82 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 80 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC 82 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 83 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 86 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 84 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 84 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 87 42 87 80 84 50 87
+3D 40 58 87 CC 22 82 3E 5A 87 0A 4E 3E 4F 3D 40
+70 87 23 27 3D 40 4A 87 1A E2 BE 21 A1 27 B5 23
+72 87 3E 4F 3D 40 4A 87 B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 8A CB 3F D2 86
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 80 46 87 AE 87 B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 81 04 51 55 49 54 00 82 43 08 18 31 40
 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A 80
-42 85 92 84 DC 84 3A 88 DE 80 70 81 52 85 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E 89 34 80
-30 FF F2 82 8A 81 52 85 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E 89 24 83 D0 88 C0 83 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C 89 86 41 42 4F 52 54
-22 00 87 12 6C 85 34 80 2E 89 C8 87 2A 80 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 90 B0 12
-FC 83 92 C3 9C 05 38 40 AA 0A 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 9C 05 F2 23 87 12
-6A 90 34 80 DE 21 F2 80 B2 84 52 85 04 1B 5B 37
-6D 00 14 85 54 80 28 83 8A 89 42 85 52 85 05 6C
-69 6E 65 3A 14 85 40 81 D2 82 14 85 52 85 04 1B
-5B 30 6D 00 14 85 12 89 00 00 83 5B 27 5D 87 12
-B0 89 34 80 34 80 C8 87 C8 87 2A 80 08 86 01 27
-87 12 B0 81 B6 85 0E 86 28 83 BE 89 2A 80 6E 88
-CE 81 81 5C 92 42 C0 21 C4 21 30 4D 9A 89 81 5B
-82 43 BE 21 30 4D C2 89 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 83 82 49 53 00 87 12
-C8 81 F2 80 28 83 02 8A 9E 89 34 80 E0 89 C8 87
-2A 80 B0 89 E0 89 2A 80 EA 89 09 49 4D 4D 45 44
+04 84 8C 83 42 87 82 83 46 87 A4 80 0C 81 1E 84
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 88
+14 84 30 FF A0 86 26 81 1E 84 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 88 3C 82 E0 87 C2 86 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E 88 86 41 42 4F
+52 54 22 00 87 12 38 84 14 84 40 88 B0 86 2A 80
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 8D
+B0 12 B6 82 92 C3 9C 05 38 40 AA 0A 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 9C 05 F3 23 87 12
+42 8D 14 84 DE 21 EA 80 AC 83 1E 84 04 1B 5B 37
+6D 00 D6 83 58 80 40 82 9A 88 04 84 1E 84 05 6C
+69 6E 65 3A D6 83 D0 80 24 82 D6 83 1E 84 04 1B
+5B 30 6D 00 D6 83 24 88 00 00 83 5B 27 5D 87 12
+C0 88 14 84 14 84 B0 86 B0 86 2A 80 E8 84 01 27
+87 12 42 87 80 84 EE 84 40 82 CE 88 2A 80 7A 87
+32 81 81 5C 92 42 C0 21 C4 21 30 4D AA 88 81 5B
+82 43 BE 21 30 4D D2 88 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 86 82 49 53 00 87 12
+BE 87 EA 80 40 82 12 89 AE 88 14 84 F0 88 B0 86
+2A 80 C0 88 F0 88 2A 80 FA 88 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 85 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 88 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 81 B6 85 0E 86 54 80
-28 83 BE 89 70 81 28 83 66 8A 34 80 34 80 C8 87
-C8 87 34 80 C8 87 C8 87 2A 80 CE 89 81 3B 82 93
-BE 21 A8 27 87 12 34 80 2A 80 C8 87 04 8B D0 89
-2A 80 6C 8A 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 8A BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 8A 01 3A 30 12 A4 8A
-87 12 92 85 B0 81 B6 85 CA 8A 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 8A 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 85
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A 89 B0 85 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 8A BA 40 86 12 FC FF E4 3F 16 88 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 8A BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C 8B 06 43 52 45 41 54
-45 00 B0 12 C0 8A BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 88 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 8B 05 44
-45 46 45 52 30 12 12 8B 8B 3F 6E 86 05 3E 42 4F
-44 59 2E 52 30 4D 6A 8B 04 43 4F 44 45 00 B0 12
-C0 8A 2A 82 82 4A C6 21 87 12 B2 8A 94 8E 66 8E
-2A 80 B8 8B 07 43 4F 44 45 4E 4E 4D 87 12 8C 8A
-D0 89 C2 8B 2A 80 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE 8E 04 8B 2A 80 1A 89 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A 8E DA 21 D9 3F E8 8B 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE 8E 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A 80 02 00 A2 52 C6 21 ED 3F 0A 8A 85 48 49 32
-4C 4F 87 12 F2 82 8C 8C C8 87 D0 89 94 8E 66 8E
-2A 80 5C 8C 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 83 00 00 2E 53 30 4D
-9E 8B 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 83 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E 85 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 8B 85 42 45 47 49 4E 30 40 F2 82 B2 8C
-85 55 4E 54 49 4C 39 40 28 83 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA 8B
-85 41 47 41 49 4E 39 40 24 83 EF 3F 34 8B 85 57
-48 49 4C 45 87 12 78 8C 78 80 2A 80 22 8A 86 52
-45 50 45 41 54 00 87 12 F6 8C B8 8C 2A 80 92 8C
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C 83 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA 87 84 4C 4F 4F 50 00 39 40
-5E 83 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 83 85 2B 4C 4F
-4F 50 39 40 4C 83 E5 3F 48 8D 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E 83 00 00 BA 40 24 83 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A 8D 04 4D 4F 56 45 00 0A 4E
+C4 87 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 87
+80 84 EE 84 58 80 40 82 CE 88 0C 81 40 82 5C 89
+14 84 14 84 B0 86 B0 86 14 84 B0 86 B0 86 2A 80
+DE 88 81 3B 82 93 BE 21 B5 27 87 12 14 84 2A 80
+B0 86 FA 89 E0 88 2A 80 62 89 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 89 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A 89 01 3A 30 12 A0 89 92 B3 C6 21 A2 63 C6 21
+87 12 42 87 80 84 C8 89 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 84 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 88 90 87 05 44 45 46 45 52
+B0 12 B8 89 BA 40 30 40 FC FF BA 40 AE 89 FE FF
+E3 3F 1E 87 06 43 52 45 41 54 45 00 B0 12 B8 89
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 8A 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 85 05 3E 42 4F 44 59 2E 52
+30 4D 44 8A 04 43 4F 44 45 00 B0 12 B8 89 A2 82
+C6 21 87 12 D2 8C AC 8C 2A 80 84 8A 07 43 4F 44
+45 4E 4E 4D B0 12 86 89 F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 8C FA 89 2A 80 2C 88 03 41
+53 4D B2 40 B0 8C DA 21 E0 3F AC 8A 06 45 4E 44
+41 53 4D 00 87 12 B4 8A F4 8C 2A 80 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 8C 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A 80
+02 00 A2 52 C6 21 ED 3F 1A 89 85 48 49 32 4C 4F
+87 12 A0 86 4A 8B B0 86 E0 88 D2 8C AC 8C 2A 80
+1A 8B 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 82 00 00 2E 53 30 4D 5E 8A
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C 82 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 83
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C 8A 85 42 45 47 49 4E 30 40 A0 86 70 8B 85 55
+4E 54 49 4C 39 40 40 82 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE 8A 85 41
+47 41 49 4E 39 40 3C 82 EF 3F 7A 84 85 57 48 49
+4C 45 87 12 36 8B 76 80 2A 80 34 84 86 52 45 50
+45 41 54 00 87 12 B4 8B 76 8B 2A 80 50 8B 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 82 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 86 84 4C 4F 4F 50 00 39 40 76 82
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 82 85 2B 4C 4F 4F 50
+39 40 64 82 E5 3F 06 8C 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE 8C
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 8B
-34 80 10 00 34 80 00 00 3C 83 34 80 00 00 C8 87
-5E 83 0A 8E F2 82 34 80 C8 21 44 80 F2 80 C8 87
-FA 80 8A 8B 34 80 CA 21 FA 80 2A 80 AE 89 05 46
-4F 52 54 48 84 12 24 8E 8E 8E C2 91 CC 8E 2E 8E
-74 8C 7C 8D F8 8F BE 8E 8E 90 A8 90 D0 8C 34 91
-00 00 CC 8F D8 89 AC 8B 00 00 F0 8C 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 8E AC 97 14 98 60 97
-7E 98 26 97 A2 98 52 94 00 00 1C 97 CC 97 7E 97
-BC 97 62 95 00 00 00 00 B0 98 58 8E 5C 8E 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C 8A 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E 85 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 8D 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 8C 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA 8A 86 5B 54 48 45 4E 5D 00 30 4D 14 8F
-86 5B 45 4C 53 45 5D 00 87 12 34 80 00 00 36 81
-B0 81 B6 85 1C 88 44 80 28 83 8E 8F 8A 80 8A 80
-52 85 06 5B 54 48 45 4E 5D 00 EA 8E 32 83 5C 8F
-36 85 40 81 54 80 32 83 30 8F 2A 80 8A 80 8A 80
-52 85 06 5B 45 4C 53 45 5D 00 EA 8E 32 83 7C 8F
-36 85 40 81 54 80 32 83 2E 8F 2A 80 52 85 04 5B
-49 46 5D 00 EA 8E 32 83 30 8F 24 83 2E 8F 36 85
-52 85 05 0D 0A 6B 6F 20 14 85 92 84 2A 88 24 83
-30 8F 20 8F 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 8F 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 81 B6 85 0E 86 6C 80 2A 80 B4 8F 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 81 B6 85 0E 86
-6C 80 64 81 2A 80 E8 8F 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 8D 06 4D 41 52 4B 45 52 00
-B0 12 C0 8A BA 40 84 12 FC FF BA 40 E6 8F FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A 8B 34 8E C4 8E D8 8E 2C 90 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 8E
-09 50 57 52 5F 53 54 41 54 45 84 12 24 90 8A 8E
-C2 98 0E 8D 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E 90 92 42 0C 18 70 90 EF 3F 60 90 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E 90 92 42
-C6 21 70 90 30 4D 74 90 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 8D 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 84 24 84 B2 40 3E 91 3C 91
-B2 40 8A 8E 0E 18 B2 40 C2 98 0C 18 30 12 7E 90
-B2 40 8C 84 8A 84 B2 40 46 85 44 85 B2 40 A0 83
-9E 83 B2 40 18 00 0A 18 37 40 1A 80 36 40 BC 80
-35 40 0E 80 34 40 00 80 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 90 04 57 41 52 4D 00 30 40 3E 91 3D 40
-72 91 92 C3 30 01 1E 42 08 18 0E 93 11 24 F2 B2
-21 02 02 20 3E E3 1E 53 F2 D0 0C 00 2B 02 3E 90
-0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27 87 2F
-30 4D 52 85 06 0D 1B 5B 37 6D 23 00 14 85 E2 82
-52 85 1F 46 61 73 74 46 6F 72 74 68 20 56 33 30
-30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
-73 20 14 85 34 80 80 FF F2 82 28 81 D2 82 52 85
-0B 62 79 74 65 73 20 66 72 65 65 20 24 83 8A 89
-E2 8E 04 43 4F 4C 44 00 92 B3 8A 05 FD 23 B2 40
-04 A5 20 01 B2 40 88 5A CC 01 B2 43 06 02 92 43
-04 02 B2 40 FE FF 02 02 D2 D3 05 02 F2 43 22 02
-F2 D3 26 02 F2 D0 BF 00 47 02 F2 40 BF 00 43 02
-F2 40 40 00 45 02 B2 40 00 A5 60 01 B2 40 FF 1E
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 84
+CA 21 F2 80 2A 80 84 12 7E 8C AE 8B 3E 8F DE 8B
+BE 88 32 8B 3A 8C 52 90 64 84 66 8D 80 8D 8E 8B
+00 8E 00 00 24 90 E8 88 78 8A 00 00 84 12 7E 8C
+70 95 D2 95 24 95 46 96 EA 94 00 00 1A 92 00 00
+E0 94 90 95 42 95 80 95 2A 93 00 00 00 00 22 96
+AA 8C 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 8C EE 8C
+F4 8C 04 8D 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 89 09 50 57 52 5F 53 54 41
+54 45 84 12 FC 8C D0 8C 58 96 CC 8B 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 8D 92 42 0C 18
+48 8D EF 3F 38 8D 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 8D 92 42 C6 21 48 8D 30 4D 4C 8D
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC 8B 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 82
+DE 82 B2 40 0A 8E 08 8E B2 40 D0 8C 0E 18 B2 40
+58 96 0C 18 30 12 56 8D B2 40 86 83 84 83 B2 40
+08 84 06 84 B2 40 98 82 96 82 B2 40 18 00 0A 18
+37 40 1A 80 36 40 92 80 35 40 0E 80 34 40 00 80
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A 8D
+04 57 41 52 4D 00 30 40 0A 8E 3D 40 3E 8E 92 C3
+30 01 1E 42 08 18 0E 93 11 24 F2 B2 21 02 02 20
+3E E3 1E 53 F2 D0 0C 00 2B 02 3E 90 0A 00 B8 27
+3E 90 16 00 B5 2F 2E 93 84 27 8D 2F 30 4D 1E 84
+06 0D 1B 5B 37 6D 23 00 D6 83 34 82 1E 84 19 46
+61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54
+68 6F 6F 72 65 6E 73 20 D6 83 14 84 30 FF A0 86
+B8 80 24 82 1E 84 0A 62 79 74 65 73 20 66 72 65
+65 00 3C 82 9A 88 82 8B 04 43 4F 4C 44 00 92 B3
+8A 05 FD 23 B2 40 04 A5 20 01 3E 8E B2 40 88 5A
+CC 01 B2 43 06 02 B2 40 FE FF 02 02 D2 D3 05 02
+F2 D3 26 02 F2 43 22 02 F2 D3 47 02 F2 40 BF 00
+43 02 B2 40 00 A5 60 01 82 43 88 01 B2 40 FF 1E
 80 01 B2 40 B0 00 82 01 B2 40 1E 00 84 01 39 40
-10 00 82 43 88 01 92 D2 5E 01 08 18 38 40 59 14
-18 83 FE 23 19 83 FA 23 39 40 00 10 29 83 89 43
-00 20 FC 23 39 40 32 00 29 83 B9 40 D4 91 CE FF
-FB 23 B2 40 2C 84 E2 FF B2 40 81 00 80 05 92 42
-02 18 86 05 92 42 04 18 88 05 92 C3 80 05 92 D3
-9A 05 3F 40 80 20 31 40 E0 20 30 12 3A 91 41 3F
-38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21 09 9A
-03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A C4 21
-30 4D 1C 15 B0 12 2A 80 B6 85 0E 86 32 83 B8 92
-CA 86 28 83 BE 89 DA 92 BA 92 29 4E 39 90 86 12
-02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E 02 00
-04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41 3E 40
-28 00 B0 12 A2 92 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53 C4 21
-B0 12 2A 80 B6 85 CA 86 28 83 18 93 0E 93 21 53
-3E 90 10 00 83 2D E1 2B 1A 93 B2 41 C4 21 DD 3F
-87 12 B0 81 80 92 28 93 0C 43 1B 42 C6 21 A2 53
-C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53 C4 21
-B0 12 A2 92 0E 93 03 20 3C 40 00 03 21 3C 1E 93
-03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40 20 03
-17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92 03 20
-3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03 08 3C
-3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02
-92 53 C4 21 B0 12 A2 92 ED 3F 7A 90 40 00 16 20
-3C 40 20 00 92 53 C4 21 B0 12 F6 92 0C 20 3C 50
-10 00 3E 40 2B 00 B0 12 F6 92 92 92 C0 21 C4 21
-02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12 F6 92
-FA 23 3C 50 10 00 B0 12 DE 92 EF 3F 0C 43 1B 42
-C6 21 A2 53 C6 21 87 12 B0 81 80 92 FE 93 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F
-B0 12 F6 92 E1 23 3C 50 80 00 B0 12 DE 92 DC 3F
-1C 84 04 52 45 54 49 00 87 12 34 80 00 13 C8 87
-2A 80 34 80 2C 00 20 93 F6 93 3C 94 2E 4E 0E DC
-09 4B A4 3F 3E 8C 03 4D 4F 56 84 12 32 94 00 40
-46 94 05 4D 4F 56 2E 42 84 12 32 94 40 40 00 00
-03 41 44 44 84 12 32 94 00 50 60 94 05 41 44 44
-2E 42 84 12 32 94 40 50 6C 94 04 41 44 44 43 00
-84 12 32 94 00 60 7A 94 06 41 44 44 43 2E 42 00
-84 12 32 94 40 60 22 94 04 53 55 42 43 00 84 12
-32 94 00 70 98 94 06 53 55 42 43 2E 42 00 84 12
-32 94 40 70 A6 94 03 53 55 42 84 12 32 94 00 80
-B6 94 05 53 55 42 2E 42 84 12 32 94 40 80 20 8C
-03 43 4D 50 84 12 32 94 00 90 D0 94 05 43 4D 50
-2E 42 84 12 32 94 40 90 0E 8C 04 44 41 44 44 00
-84 12 32 94 00 A0 EA 94 06 44 41 44 44 2E 42 00
-84 12 32 94 40 A0 DC 94 03 42 49 54 84 12 32 94
-00 B0 08 95 05 42 49 54 2E 42 84 12 32 94 40 B0
-14 95 03 42 49 43 84 12 32 94 00 C0 22 95 05 42
-49 43 2E 42 84 12 32 94 40 C0 2E 95 03 42 49 53
-84 12 32 94 00 D0 3C 95 05 42 49 53 2E 42 84 12
-32 94 40 D0 00 00 03 58 4F 52 84 12 32 94 00 E0
-56 95 05 58 4F 52 2E 42 84 12 32 94 40 E0 88 94
-03 41 4E 44 84 12 32 94 00 F0 70 95 05 41 4E 44
-2E 42 84 12 32 94 40 F0 B0 81 20 93 8E 95 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F C2 94
-03 52 52 43 84 12 88 95 00 10 A0 95 05 52 52 43
-2E 42 84 12 88 95 40 10 AC 95 04 53 57 50 42 00
-84 12 88 95 80 10 BA 95 03 52 52 41 84 12 88 95
-00 11 C8 95 05 52 52 41 2E 42 84 12 88 95 40 11
-D4 95 03 53 58 54 84 12 88 95 80 11 00 00 04 50
-55 53 48 00 84 12 88 95 00 12 EE 95 06 50 55 53
-48 2E 42 00 84 12 88 95 40 12 48 95 04 43 41 4C
-4C 00 84 12 88 95 80 12 1A 53 0E 4A 87 12 E2 82
-52 85 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
-3A 89 B0 81 80 92 38 96 92 53 C4 21 3E 40 2C 00
-B0 12 2A 80 B6 85 CA 86 28 83 BE 89 EC 93 50 96
-0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C
-59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E
-94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F E2 95 04 52
-52 43 4D 00 84 12 32 96 50 00 7E 96 04 52 52 41
-4D 00 84 12 32 96 50 01 8C 96 04 52 4C 41 4D 00
-84 12 32 96 50 02 9A 96 04 52 52 55 4D 00 84 12
-32 96 50 03 FC 95 05 50 55 53 48 4D 84 12 32 96
-00 15 B6 96 04 50 4F 50 4D 00 84 12 32 96 00 17
-85 12 00 3C A8 96 03 53 3E 3D 85 12 00 38 D6 96
-02 53 3C 00 85 12 00 34 C4 96 03 30 3E 3D 85 12
-00 30 EA 96 02 30 3C 00 85 12 00 30 00 00 02 55
-3C 00 85 12 00 2C FE 96 03 55 3E 3D 85 12 00 28
-F4 96 03 30 3C 3E 85 12 00 24 12 97 02 30 3D 00
-85 12 00 20 00 00 02 49 46 00 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 0E 4A 30 4D 08 97 04 54 48 45
-4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53 0A 89
-0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D F8 94
-04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C 00 00
-A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 3C 97 05 55
-4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21 2A 83
-0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03 08 DA
-89 48 00 00 A2 53 C6 21 30 4D 7C 95 05 41 47 41
-49 4E 87 12 D0 96 84 97 2A 80 00 00 05 57 48 49
-4C 45 87 12 2A 97 78 80 2A 80 E0 96 06 52 45 50
-45 41 54 00 87 12 D0 96 84 97 42 97 2A 80 E0 97
-3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43 00 00
-CA 23 98 42 C6 21 00 00 30 4D 0C 96 03 42 57 31
-84 12 DE 97 E0 21 FC 97 03 42 57 32 84 12 DE 97
-E2 21 08 98 03 42 57 33 84 12 DE 97 E4 21 20 98
-3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43 00 00
-8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F
-30 4D 00 00 03 46 57 31 84 12 1E 98 E6 21 44 98
-03 46 57 32 84 12 1E 98 E8 21 50 98 03 46 57 33
-84 12 1E 98 EA 21 3E 90 00 30 07 24 3E E0 00 04
-3E B0 00 10 02 24 3E E0 00 08 30 4D 5C 98 04 47
-4F 54 4F 00 87 12 D0 96 B0 89 BE 87 2A 80 00 00
-05 3F 47 4F 54 4F 87 12 66 98 B0 89 BE 87 2A 80
-00 00 03 4A 4D 50 87 12 B0 89 B2 97 2A 80 90 98
-04 3F 4A 4D 50 00 87 12 66 98 B0 89 78 80 84 97
-2A 80
+10 00 92 D2 5E 01 08 18 38 40 59 14 18 83 FE 23
+19 83 FA 23 39 40 00 10 29 83 89 43 00 20 FC 23
+39 40 32 00 29 83 B9 40 9C 8E CE FF FB 23 B2 40
+26 83 E2 FF B2 40 81 00 80 05 92 42 02 18 86 05
+92 42 04 18 88 05 92 C3 80 05 92 D3 9A 05 3F 40
+80 20 31 40 E0 20 30 12 06 8E 4F 3F 88 8E 07 43
+4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B
+0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53 F9 98
+FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D B2 89
+86 5B 54 48 45 4E 5D 00 30 4D 70 8F 86 5B 45 4C
+53 45 5D 00 87 12 14 84 00 00 C6 80 42 87 80 84
+24 87 34 80 40 82 E6 8F 44 80 1E 84 06 5B 54 48
+45 4E 5D 00 46 8F 4A 82 B6 8F F8 83 D0 80 58 80
+4A 82 8C 8F 2A 80 44 80 1E 84 06 5B 45 4C 53 45
+5D 00 46 8F 4A 82 D4 8F F8 83 D0 80 58 80 4A 82
+8A 8F 2A 80 1E 84 04 5B 49 46 5D 00 46 8F 4A 82
+8C 8F 3C 82 8A 8F F8 83 1E 84 05 0D 0A 6B 6F 20
+D6 83 8C 83 32 87 3C 82 8C 8F 7C 8F 84 5B 49 46
+5D 00 0E 93 3E 4F BE 27 30 4D FC 8F 89 5B 44 45
+46 49 4E 45 44 5D 87 12 42 87 80 84 EE 84 6A 80
+2A 80 0C 90 8B 5B 55 4E 44 45 46 49 4E 45 44 5D
+87 12 42 87 80 84 EE 84 6A 80 00 81 2A 80 40 90
+3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F 30 40 56 8D
+48 8C 06 4D 41 52 4B 45 52 00 B0 12 B8 89 BA 40
+84 12 FC FF BA 40 3E 90 FE FF 9A 42 C8 21 00 00
+28 83 8A 48 02 00 A2 52 C6 21 30 40 00 8A 1C 15
+B0 12 2A 80 80 84 EE 84 4A 82 94 90 AA 85 40 82
+CE 88 AE 90 96 90 39 4E 39 80 86 12 08 24 19 53
+02 20 2E 4E 04 3C 2E 53 19 53 01 24 2E 82 1B 17
+30 41 3E 40 28 00 B0 12 7E 90 19 42 C6 21 A2 53
+C6 21 89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 21
+92 53 C4 21 B0 12 2A 80 80 84 AA 85 40 82 EC 90
+E2 90 21 53 3E 90 10 00 7D 2D E1 2B EE 90 B2 41
+C4 21 DD 3F 87 12 42 87 74 84 FC 90 0C 43 1B 42
+C6 21 A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 27 20
+92 53 C4 21 B0 12 7E 90 3C 40 00 03 0E 93 1C 24
+3C 40 10 03 1E 93 18 24 3C 40 20 03 2E 93 14 24
+3C 40 20 02 2E 92 10 24 3C 40 30 02 3E 92 0C 24
+3C 40 30 03 3E 93 08 24 3C 40 30 00 19 42 C6 21
+A2 53 C6 21 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90
+26 00 07 20 3C 40 10 02 92 53 C4 21 B0 12 7E 90
+ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21
+B0 12 CA 90 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
+CA 90 92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10
+0C 5E DA 3F B0 12 CA 90 FA 23 3C 50 10 00 B0 12
+B2 90 EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 87 12
+42 87 74 84 C6 91 FE 90 26 00 00 00 3E 40 20 00
+03 20 3C 50 82 00 C8 3F B0 12 CA 90 E1 23 3C 50
+80 00 B0 12 B2 90 DC 3F D6 82 04 52 45 54 49 00
+87 12 14 84 00 13 B0 86 2A 80 14 84 2C 00 F4 90
+BE 91 04 92 09 4B 2E 4E 0E DC A4 3F FC 8A 03 4D
+4F 56 84 12 FA 91 00 40 0E 92 05 4D 4F 56 2E 42
+84 12 FA 91 40 40 00 00 03 41 44 44 84 12 FA 91
+00 50 28 92 05 41 44 44 2E 42 84 12 FA 91 40 50
+34 92 04 41 44 44 43 00 84 12 FA 91 00 60 42 92
+06 41 44 44 43 2E 42 00 84 12 FA 91 40 60 EA 91
+04 53 55 42 43 00 84 12 FA 91 00 70 60 92 06 53
+55 42 43 2E 42 00 84 12 FA 91 40 70 6E 92 03 53
+55 42 84 12 FA 91 00 80 7E 92 05 53 55 42 2E 42
+84 12 FA 91 40 80 DE 8A 03 43 4D 50 84 12 FA 91
+00 90 98 92 05 43 4D 50 2E 42 84 12 FA 91 40 90
+CC 8A 04 44 41 44 44 00 84 12 FA 91 00 A0 B2 92
+06 44 41 44 44 2E 42 00 84 12 FA 91 40 A0 A4 92
+03 42 49 54 84 12 FA 91 00 B0 D0 92 05 42 49 54
+2E 42 84 12 FA 91 40 B0 DC 92 03 42 49 43 84 12
+FA 91 00 C0 EA 92 05 42 49 43 2E 42 84 12 FA 91
+40 C0 F6 92 03 42 49 53 84 12 FA 91 00 D0 04 93
+05 42 49 53 2E 42 84 12 FA 91 40 D0 00 00 03 58
+4F 52 84 12 FA 91 00 E0 1E 93 05 58 4F 52 2E 42
+84 12 FA 91 40 E0 50 92 03 41 4E 44 84 12 FA 91
+00 F0 38 93 05 41 4E 44 2E 42 84 12 FA 91 40 F0
+42 87 F4 90 56 93 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4F 3F 8A 92 03 52 52 43 84 12 50 93
+00 10 68 93 05 52 52 43 2E 42 84 12 50 93 40 10
+74 93 04 53 57 50 42 00 84 12 50 93 80 10 82 93
+03 52 52 41 84 12 50 93 00 11 90 93 05 52 52 41
+2E 42 84 12 50 93 40 11 9C 93 03 53 58 54 84 12
+50 93 80 11 00 00 04 50 55 53 48 00 84 12 50 93
+00 12 B6 93 06 50 55 53 48 2E 42 00 84 12 50 93
+40 12 10 93 04 43 41 4C 4C 00 84 12 50 93 80 12
+1A 53 0E 4A 87 12 34 82 1E 84 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 4C 88 42 87 74 84 00 94
+92 53 C4 21 3E 40 2C 00 B0 12 2A 80 80 84 AA 85
+40 82 CE 88 B4 91 18 94 0A 4E 3E 4F 1A 83 E0 33
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10
+5A 06 8F 3F AA 93 04 52 52 43 4D 00 84 12 FA 93
+50 00 46 94 04 52 52 41 4D 00 84 12 FA 93 50 01
+54 94 04 52 4C 41 4D 00 84 12 FA 93 50 02 62 94
+04 52 52 55 4D 00 84 12 FA 93 50 03 C4 93 05 50
+55 53 48 4D 84 12 FA 93 00 15 7E 94 04 50 4F 50
+4D 00 84 12 FA 93 00 17 70 94 03 53 3E 3D 85 12
+00 38 9A 94 02 53 3C 00 85 12 00 34 8C 94 03 30
+3E 3D 85 12 00 30 AE 94 02 30 3C 00 85 12 00 30
+00 00 02 55 3C 00 85 12 00 2C C2 94 03 55 3E 3D
+85 12 00 28 B8 94 03 30 3C 3E 85 12 00 24 D6 94
+02 30 3D 00 85 12 00 20 00 00 02 49 46 00 1A 42
+C6 21 8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D CC 94
+04 54 48 45 4E 00 1A 42 C6 21 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 63 2F 88 DA 00 00
+30 4D C0 92 04 45 4C 53 45 00 1A 42 C6 21 BA 40
+00 3C 00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F
+00 95 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C6 21 2A 83 0A 89 0A 11 3A 90 00 FE 42 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D 44 93
+05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+05 57 48 49 4C 45 87 12 EE 94 76 80 2A 80 A4 94
+06 52 45 50 45 41 54 00 87 12 76 95 06 95 2A 80
+A2 95 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CD 2F
+98 42 C6 21 00 00 30 4D D4 93 03 42 57 31 84 12
+A0 95 00 00 BA 95 03 42 57 32 84 12 A0 95 00 00
+C6 95 03 42 57 33 84 12 A0 95 00 00 DE 95 3D 41
+1A 42 C6 21 28 4E B2 92 C4 21 90 2B BA 4F 00 00
+A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
+57 31 84 12 DC 95 00 00 FE 95 03 46 57 32 84 12
+DC 95 00 00 0A 96 03 46 57 33 84 12 DC 95 00 00
+00 00 05 3F 47 4F 54 4F 3E 90 00 30 07 24 3E E0
+00 04 3E B0 00 10 02 24 3E E0 00 08 87 12 C0 88
+DA 86 2A 80 16 96 04 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C F2 3F
 @FFFE
-D4 91
+9C 8E
 q
index fa866aa..80b0a1a 100644 (file)
 @1800
-10 00 0D 00 01 49 C0 5D 05 00 18 00 D2 98 8A 8E
-2C 01 7B B0 FC 83 0E 84
+10 00 0D 00 01 49 C0 5D 05 00 18 00 68 96 D0 8C
+2D 01 6B B0 B6 82 C8 82
 @8000
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 80
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 80 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 80 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 80 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 80 02 3E 52 00
-0E 12 3E 4F 30 4D 96 80 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 80 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 80 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 80 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 81 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 80 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 81 02 31 2D 00
-1E 83 30 4D D8 80 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 81
-02 30 3D 00 1E 83 0E 7E 30 4D 60 81 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 81 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 80 01 3E 3E 8F F4 3B EB 37 0E 81 02 42 4C 00
-85 12 20 00 AC 81 04 42 41 53 45 00 85 12 DC 21
-C8 80 05 53 54 41 54 45 85 12 BE 21 96 81 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 81 06 55 4D 2F
-4D 4F 44 00 30 12 62 80 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 80 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 81
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 81 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 82
-02 23 53 00 87 12 32 82 6A 82 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 82 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 81 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 81
-02 44 2E 00 87 12 D2 81 44 80 B0 80 4C 81 64 82
-BC 80 A2 82 7E 82 14 85 DC 84 2A 80 DC 81 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 80
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 82 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 80
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A 82
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 82 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 82 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 81 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 83 03 4B 45 59 30 40 A0 83
-18 42 8C 05 2F 83 8F 4E 00 00 B0 12 FC 83 92 B3
-9C 05 FD 27 1E 42 8C 05 B0 12 0E 84 30 4D 00 83
-06 41 43 43 45 50 54 00 3C 40 6A 84 3B 40 34 84
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E 84 92 B3 9C 05 05 24 18 42 8C 05 38 90
-0A 00 04 20 21 53 39 40 22 84 4D 15 A2 B3 9C 05
-FD 27 B2 40 11 00 8E 05 D2 C3 03 02 30 41 B2 40
-13 00 8E 05 D2 D3 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 84 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 8C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 9C 05 FD 27 82 48 8E 05 30 4D 60 84
-2D 83 92 B3 9C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 82 04 45 4D 49 54 00 30 40 8C 84 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 84 04 45 43 48
-4F 00 B2 40 82 48 58 84 82 43 DE 21 30 4D E0 82
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 84 92 43
-DE 21 30 4D 9C 82 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 84 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE 84 EF 3F 00 85
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 83 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A 85 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C 85 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 83 02 43
-52 00 30 40 46 85 87 12 52 85 02 0D 0A 00 14 85
-2A 80 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA 84 82 53 22 00 82 43 B4 21
-87 12 34 80 52 85 C8 87 34 80 22 00 B6 85 80 85
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 84 82 2E
-22 00 87 12 6C 85 34 80 14 85 C8 87 2A 80 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 80
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 80
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 80
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 80 02 3E 52 00 0E 12 3E 4F 30 4D 70 80 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 80 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 80 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 80
+01 21 BE 4F 00 00 3E 4F 30 4D CC 80 02 30 3D 00
+1E 83 0E 7E 30 4D FC 80 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 81 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 81 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 81 02 23 53 00 87 12 88 81 C0 81
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 81
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 80 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 81 34 80 86 80 D4 80 BA 81
+92 80 F8 81 D4 81 D6 83 42 87 82 83 2A 80 22 81
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 81 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 82 18 42 8C 05 2F 83 8F 4E
+00 00 B0 12 B6 82 92 B3 9C 05 FD 27 1E 42 8C 05
+B0 12 C8 82 30 4D A2 B3 9C 05 FD 27 B2 40 11 00
+8E 05 D2 C3 03 02 30 41 B2 40 13 00 8E 05 D2 D3
+03 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 82
+B0 12 B6 82 12 D2 0A 18 F9 3F F0 80 06 41 43 43
+45 50 54 00 3C 40 64 83 3B 40 2E 83 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 83
+92 B3 9C 05 05 24 18 42 8C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 8C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 9C 05
+FD 27 82 48 8E 05 30 4D 5A 83 2D 83 92 B3 9C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 80 04 45 4D 49
+54 00 30 40 86 83 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C 83 04 45 43 48 4F 00 B2 40 82 48
+52 83 82 43 DE 21 30 4D 32 82 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 83 92 43 DE 21 30 4D 20 82
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 83
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 83 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 81
+02 43 52 00 30 40 08 84 87 12 1E 84 02 0D 0A 00
+D6 83 2A 80 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 81 82 53 22 00 82 43 B4 21 87 12 14 84
+1E 84 B0 86 14 84 22 00 80 84 4C 84 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA 83 82 2E 22 00 87 12 38 84 14 84 D6 83
+B0 86 2A 80 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,302 +86,281 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E 80 34 40 00 80 30 4D A2 81 07 3E
+00 00 35 40 0E 80 34 40 00 80 30 4D 82 80 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 87 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 87 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 81
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC 84 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 81 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 87 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 80 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E 85 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A 88 B0 81
-B6 85 44 88 3D 40 4C 88 E2 22 5D 3E 4E 88 0A 4E
-3E 4F 3D 40 64 88 39 27 3D 40 3E 88 1A E2 BE 21
-B3 27 AD 23 66 88 3E 4F 3D 40 3E 88 BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 8B
-CD 3F B6 87 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A 80 3A 88
-A2 88 B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C 81 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 85 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 85 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 81 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 82 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 80 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC 82 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 83 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 86 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 84 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 84 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 87 42 87 80 84 50 87
+3D 40 58 87 CC 22 82 3E 5A 87 0A 4E 3E 4F 3D 40
+70 87 23 27 3D 40 4A 87 1A E2 BE 21 A1 27 B5 23
+72 87 3E 4F 3D 40 4A 87 B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 8A CB 3F D2 86
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 80 46 87 AE 87 B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 81 04 51 55 49 54 00 82 43 08 18 31 40
 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A 80
-42 85 92 84 DC 84 3A 88 DE 80 70 81 52 85 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E 89 34 80
-30 FF F2 82 8A 81 52 85 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E 89 24 83 D0 88 C0 83 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C 89 86 41 42 4F 52 54
-22 00 87 12 6C 85 34 80 2E 89 C8 87 2A 80 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 90 B0 12
-FC 83 92 C3 9C 05 38 40 F0 FF 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 9C 05 F2 23 87 12
-6A 90 34 80 DE 21 F2 80 B2 84 52 85 04 1B 5B 37
-6D 00 14 85 54 80 28 83 8A 89 42 85 52 85 05 6C
-69 6E 65 3A 14 85 40 81 D2 82 14 85 52 85 04 1B
-5B 30 6D 00 14 85 12 89 00 00 83 5B 27 5D 87 12
-B0 89 34 80 34 80 C8 87 C8 87 2A 80 08 86 01 27
-87 12 B0 81 B6 85 0E 86 28 83 BE 89 2A 80 6E 88
-CE 81 81 5C 92 42 C0 21 C4 21 30 4D 9A 89 81 5B
-82 43 BE 21 30 4D C2 89 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 83 82 49 53 00 87 12
-C8 81 F2 80 28 83 02 8A 9E 89 34 80 E0 89 C8 87
-2A 80 B0 89 E0 89 2A 80 EA 89 09 49 4D 4D 45 44
+04 84 8C 83 42 87 82 83 46 87 A4 80 0C 81 1E 84
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 88
+14 84 30 FF A0 86 26 81 1E 84 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 88 3C 82 E0 87 C2 86 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E 88 86 41 42 4F
+52 54 22 00 87 12 38 84 14 84 40 88 B0 86 2A 80
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 8D
+B0 12 B6 82 92 C3 9C 05 38 40 F0 FF 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 9C 05 F3 23 87 12
+42 8D 14 84 DE 21 EA 80 AC 83 1E 84 04 1B 5B 37
+6D 00 D6 83 58 80 40 82 9A 88 04 84 1E 84 05 6C
+69 6E 65 3A D6 83 D0 80 24 82 D6 83 1E 84 04 1B
+5B 30 6D 00 D6 83 24 88 00 00 83 5B 27 5D 87 12
+C0 88 14 84 14 84 B0 86 B0 86 2A 80 E8 84 01 27
+87 12 42 87 80 84 EE 84 40 82 CE 88 2A 80 7A 87
+32 81 81 5C 92 42 C0 21 C4 21 30 4D AA 88 81 5B
+82 43 BE 21 30 4D D2 88 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 86 82 49 53 00 87 12
+BE 87 EA 80 40 82 12 89 AE 88 14 84 F0 88 B0 86
+2A 80 C0 88 F0 88 2A 80 FA 88 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 85 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 88 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 81 B6 85 0E 86 54 80
-28 83 BE 89 70 81 28 83 66 8A 34 80 34 80 C8 87
-C8 87 34 80 C8 87 C8 87 2A 80 CE 89 81 3B 82 93
-BE 21 A8 27 87 12 34 80 2A 80 C8 87 04 8B D0 89
-2A 80 6C 8A 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 8A BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 8A 01 3A 30 12 A4 8A
-87 12 92 85 B0 81 B6 85 CA 8A 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 8A 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 85
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A 89 B0 85 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 8A BA 40 86 12 FC FF E4 3F 16 88 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 8A BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C 8B 06 43 52 45 41 54
-45 00 B0 12 C0 8A BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 88 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 8B 05 44
-45 46 45 52 30 12 12 8B 8B 3F 6E 86 05 3E 42 4F
-44 59 2E 52 30 4D 6A 8B 04 43 4F 44 45 00 B0 12
-C0 8A 2A 82 82 4A C6 21 87 12 B2 8A 94 8E 66 8E
-2A 80 B8 8B 07 43 4F 44 45 4E 4E 4D 87 12 8C 8A
-D0 89 C2 8B 2A 80 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE 8E 04 8B 2A 80 1A 89 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A 8E DA 21 D9 3F E8 8B 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE 8E 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A 80 02 00 A2 52 C6 21 ED 3F 0A 8A 85 48 49 32
-4C 4F 87 12 F2 82 8C 8C C8 87 D0 89 94 8E 66 8E
-2A 80 5C 8C 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 83 00 00 2E 53 30 4D
-9E 8B 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 83 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E 85 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 8B 85 42 45 47 49 4E 30 40 F2 82 B2 8C
-85 55 4E 54 49 4C 39 40 28 83 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA 8B
-85 41 47 41 49 4E 39 40 24 83 EF 3F 34 8B 85 57
-48 49 4C 45 87 12 78 8C 78 80 2A 80 22 8A 86 52
-45 50 45 41 54 00 87 12 F6 8C B8 8C 2A 80 92 8C
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C 83 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA 87 84 4C 4F 4F 50 00 39 40
-5E 83 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 83 85 2B 4C 4F
-4F 50 39 40 4C 83 E5 3F 48 8D 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E 83 00 00 BA 40 24 83 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A 8D 04 4D 4F 56 45 00 0A 4E
+C4 87 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 87
+80 84 EE 84 58 80 40 82 CE 88 0C 81 40 82 5C 89
+14 84 14 84 B0 86 B0 86 14 84 B0 86 B0 86 2A 80
+DE 88 81 3B 82 93 BE 21 B5 27 87 12 14 84 2A 80
+B0 86 FA 89 E0 88 2A 80 62 89 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 89 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A 89 01 3A 30 12 A0 89 92 B3 C6 21 A2 63 C6 21
+87 12 42 87 80 84 C8 89 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 84 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 88 90 87 05 44 45 46 45 52
+B0 12 B8 89 BA 40 30 40 FC FF BA 40 AE 89 FE FF
+E3 3F 1E 87 06 43 52 45 41 54 45 00 B0 12 B8 89
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 8A 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 85 05 3E 42 4F 44 59 2E 52
+30 4D 44 8A 04 43 4F 44 45 00 B0 12 B8 89 A2 82
+C6 21 87 12 D2 8C AC 8C 2A 80 84 8A 07 43 4F 44
+45 4E 4E 4D B0 12 86 89 F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 8C FA 89 2A 80 2C 88 03 41
+53 4D B2 40 B0 8C DA 21 E0 3F AC 8A 06 45 4E 44
+41 53 4D 00 87 12 B4 8A F4 8C 2A 80 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 8C 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A 80
+02 00 A2 52 C6 21 ED 3F 1A 89 85 48 49 32 4C 4F
+87 12 A0 86 4A 8B B0 86 E0 88 D2 8C AC 8C 2A 80
+1A 8B 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 82 00 00 2E 53 30 4D 5E 8A
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C 82 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 83
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C 8A 85 42 45 47 49 4E 30 40 A0 86 70 8B 85 55
+4E 54 49 4C 39 40 40 82 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE 8A 85 41
+47 41 49 4E 39 40 3C 82 EF 3F 7A 84 85 57 48 49
+4C 45 87 12 36 8B 76 80 2A 80 34 84 86 52 45 50
+45 41 54 00 87 12 B4 8B 76 8B 2A 80 50 8B 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 82 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 86 84 4C 4F 4F 50 00 39 40 76 82
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 82 85 2B 4C 4F 4F 50
+39 40 64 82 E5 3F 06 8C 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE 8C
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 8B
-34 80 10 00 34 80 00 00 3C 83 34 80 00 00 C8 87
-5E 83 0A 8E F2 82 34 80 C8 21 44 80 F2 80 C8 87
-FA 80 8A 8B 34 80 CA 21 FA 80 2A 80 AE 89 05 46
-4F 52 54 48 84 12 24 8E 8E 8E C2 91 CC 8E 2E 8E
-74 8C 7C 8D F8 8F BE 8E 8E 90 A8 90 D0 8C 34 91
-00 00 CC 8F D8 89 AC 8B 00 00 F0 8C 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 8E BC 97 24 98 70 97
-8E 98 36 97 B2 98 62 94 00 00 2C 97 DC 97 8E 97
-CC 97 72 95 00 00 00 00 C0 98 58 8E 5C 8E 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C 8A 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E 85 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 8D 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 8C 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA 8A 86 5B 54 48 45 4E 5D 00 30 4D 14 8F
-86 5B 45 4C 53 45 5D 00 87 12 34 80 00 00 36 81
-B0 81 B6 85 1C 88 44 80 28 83 8E 8F 8A 80 8A 80
-52 85 06 5B 54 48 45 4E 5D 00 EA 8E 32 83 5C 8F
-36 85 40 81 54 80 32 83 30 8F 2A 80 8A 80 8A 80
-52 85 06 5B 45 4C 53 45 5D 00 EA 8E 32 83 7C 8F
-36 85 40 81 54 80 32 83 2E 8F 2A 80 52 85 04 5B
-49 46 5D 00 EA 8E 32 83 30 8F 24 83 2E 8F 36 85
-52 85 05 0D 0A 6B 6F 20 14 85 92 84 2A 88 24 83
-30 8F 20 8F 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 8F 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 81 B6 85 0E 86 6C 80 2A 80 B4 8F 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 81 B6 85 0E 86
-6C 80 64 81 2A 80 E8 8F 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 8D 06 4D 41 52 4B 45 52 00
-B0 12 C0 8A BA 40 84 12 FC FF BA 40 E6 8F FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A 8B 34 8E C4 8E D8 8E 2C 90 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 8E
-09 50 57 52 5F 53 54 41 54 45 84 12 24 90 8A 8E
-D2 98 0E 8D 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E 90 92 42 0C 18 70 90 EF 3F 60 90 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E 90 92 42
-C6 21 70 90 30 4D 74 90 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 8D 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 84 24 84 B2 40 3E 91 3C 91
-B2 40 8A 8E 0E 18 B2 40 D2 98 0C 18 30 12 7E 90
-B2 40 8C 84 8A 84 B2 40 46 85 44 85 B2 40 A0 83
-9E 83 B2 40 18 00 0A 18 37 40 1A 80 36 40 BC 80
-35 40 0E 80 34 40 00 80 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 90 04 57 41 52 4D 00 30 40 3E 91 3D 40
-72 91 92 C3 30 01 1E 42 08 18 0E 93 11 24 F2 B2
-21 02 02 20 3E E3 1E 53 F2 D0 0C 00 2B 02 3E 90
-0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27 87 2F
-30 4D 52 85 06 0D 1B 5B 37 6D 23 00 14 85 E2 82
-52 85 1F 46 61 73 74 46 6F 72 74 68 20 56 33 30
-30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
-73 20 14 85 34 80 80 FF F2 82 28 81 D2 82 52 85
-0B 62 79 74 65 73 20 66 72 65 65 20 24 83 8A 89
-E2 8E 04 43 4F 4C 44 00 92 B3 8A 05 FD 23 B2 40
-04 A5 20 01 B2 40 88 5A CC 01 B2 43 06 02 92 43
-04 02 B2 40 FE FF 02 02 D2 D3 05 02 F2 43 22 02
-F2 D3 26 02 F2 D0 BF 00 47 02 F2 40 BF 00 43 02
-F2 40 40 00 45 02 F2 40 A5 00 A1 01 F2 40 20 00
-A0 01 D2 43 A1 01 B2 40 00 A5 60 01 B2 40 FF 1E
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 84
+CA 21 F2 80 2A 80 84 12 7E 8C AE 8B 4E 8F DE 8B
+BE 88 32 8B 3A 8C 62 90 64 84 66 8D 80 8D 8E 8B
+00 8E 00 00 34 90 E8 88 78 8A 00 00 84 12 7E 8C
+80 95 E2 95 34 95 56 96 FA 94 00 00 2A 92 00 00
+F0 94 A0 95 52 95 90 95 3A 93 00 00 00 00 32 96
+AA 8C 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 8C EE 8C
+F4 8C 04 8D 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 89 09 50 57 52 5F 53 54 41
+54 45 84 12 FC 8C D0 8C 68 96 CC 8B 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 8D 92 42 0C 18
+48 8D EF 3F 38 8D 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 8D 92 42 C6 21 48 8D 30 4D 4C 8D
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC 8B 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 82
+DE 82 B2 40 0A 8E 08 8E B2 40 D0 8C 0E 18 B2 40
+68 96 0C 18 30 12 56 8D B2 40 86 83 84 83 B2 40
+08 84 06 84 B2 40 98 82 96 82 B2 40 18 00 0A 18
+37 40 1A 80 36 40 92 80 35 40 0E 80 34 40 00 80
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A 8D
+04 57 41 52 4D 00 30 40 0A 8E 3D 40 3E 8E 92 C3
+30 01 1E 42 08 18 0E 93 11 24 F2 B2 21 02 02 20
+3E E3 1E 53 F2 D0 0C 00 2B 02 3E 90 0A 00 B8 27
+3E 90 16 00 B5 2F 2E 93 84 27 8D 2F 30 4D 1E 84
+06 0D 1B 5B 37 6D 23 00 D6 83 34 82 1E 84 19 46
+61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54
+68 6F 6F 72 65 6E 73 20 D6 83 14 84 30 FF A0 86
+B8 80 24 82 1E 84 0A 62 79 74 65 73 20 66 72 65
+65 00 3C 82 9A 88 82 8B 04 43 4F 4C 44 00 92 B3
+8A 05 FD 23 B2 40 04 A5 20 01 3E 8E B2 40 88 5A
+CC 01 B2 43 06 02 B2 40 FE FF 02 02 D2 D3 05 02
+F2 D3 26 02 F2 43 22 02 F2 D3 47 02 F2 40 BF 00
+43 02 F2 40 A5 00 A1 01 F2 40 20 00 A0 01 D2 43
+A1 01 B2 40 00 A5 60 01 82 43 88 01 B2 40 FF 1E
 80 01 B2 40 BE 00 82 01 B2 40 DC 02 84 01 39 40
-80 01 82 43 88 01 92 D2 5E 01 08 18 38 40 59 14
-18 83 FE 23 19 83 FA 23 39 40 00 10 29 83 89 43
-00 20 FC 23 39 40 32 00 29 83 B9 40 D4 91 CE FF
-FB 23 B2 40 2C 84 E2 FF B2 40 81 00 80 05 92 42
-02 18 86 05 92 42 04 18 88 05 92 C3 80 05 92 D3
-9A 05 3F 40 80 20 31 40 E0 20 30 12 3A 91 39 3F
-38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21 09 9A
-03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A C4 21
-30 4D 1C 15 B0 12 2A 80 B6 85 0E 86 32 83 C8 92
-CA 86 28 83 BE 89 EA 92 CA 92 29 4E 39 90 86 12
-02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E 02 00
-04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41 3E 40
-28 00 B0 12 B2 92 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53 C4 21
-B0 12 2A 80 B6 85 CA 86 28 83 28 93 1E 93 21 53
-3E 90 10 00 83 2D E1 2B 2A 93 B2 41 C4 21 DD 3F
-87 12 B0 81 90 92 38 93 0C 43 1B 42 C6 21 A2 53
-C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53 C4 21
-B0 12 B2 92 0E 93 03 20 3C 40 00 03 21 3C 1E 93
-03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40 20 03
-17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92 03 20
-3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03 08 3C
-3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02
-92 53 C4 21 B0 12 B2 92 ED 3F 7A 90 40 00 16 20
-3C 40 20 00 92 53 C4 21 B0 12 06 93 0C 20 3C 50
-10 00 3E 40 2B 00 B0 12 06 93 92 92 C0 21 C4 21
-02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12 06 93
-FA 23 3C 50 10 00 B0 12 EE 92 EF 3F 0C 43 1B 42
-C6 21 A2 53 C6 21 87 12 B0 81 90 92 0E 94 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F
-B0 12 06 93 E1 23 3C 50 80 00 B0 12 EE 92 DC 3F
-1C 84 04 52 45 54 49 00 87 12 34 80 00 13 C8 87
-2A 80 34 80 2C 00 30 93 06 94 4C 94 2E 4E 0E DC
-09 4B A4 3F 3E 8C 03 4D 4F 56 84 12 42 94 00 40
-56 94 05 4D 4F 56 2E 42 84 12 42 94 40 40 00 00
-03 41 44 44 84 12 42 94 00 50 70 94 05 41 44 44
-2E 42 84 12 42 94 40 50 7C 94 04 41 44 44 43 00
-84 12 42 94 00 60 8A 94 06 41 44 44 43 2E 42 00
-84 12 42 94 40 60 32 94 04 53 55 42 43 00 84 12
-42 94 00 70 A8 94 06 53 55 42 43 2E 42 00 84 12
-42 94 40 70 B6 94 03 53 55 42 84 12 42 94 00 80
-C6 94 05 53 55 42 2E 42 84 12 42 94 40 80 20 8C
-03 43 4D 50 84 12 42 94 00 90 E0 94 05 43 4D 50
-2E 42 84 12 42 94 40 90 0E 8C 04 44 41 44 44 00
-84 12 42 94 00 A0 FA 94 06 44 41 44 44 2E 42 00
-84 12 42 94 40 A0 EC 94 03 42 49 54 84 12 42 94
-00 B0 18 95 05 42 49 54 2E 42 84 12 42 94 40 B0
-24 95 03 42 49 43 84 12 42 94 00 C0 32 95 05 42
-49 43 2E 42 84 12 42 94 40 C0 3E 95 03 42 49 53
-84 12 42 94 00 D0 4C 95 05 42 49 53 2E 42 84 12
-42 94 40 D0 00 00 03 58 4F 52 84 12 42 94 00 E0
-66 95 05 58 4F 52 2E 42 84 12 42 94 40 E0 98 94
-03 41 4E 44 84 12 42 94 00 F0 80 95 05 41 4E 44
-2E 42 84 12 42 94 40 F0 B0 81 30 93 9E 95 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F D2 94
-03 52 52 43 84 12 98 95 00 10 B0 95 05 52 52 43
-2E 42 84 12 98 95 40 10 BC 95 04 53 57 50 42 00
-84 12 98 95 80 10 CA 95 03 52 52 41 84 12 98 95
-00 11 D8 95 05 52 52 41 2E 42 84 12 98 95 40 11
-E4 95 03 53 58 54 84 12 98 95 80 11 00 00 04 50
-55 53 48 00 84 12 98 95 00 12 FE 95 06 50 55 53
-48 2E 42 00 84 12 98 95 40 12 58 95 04 43 41 4C
-4C 00 84 12 98 95 80 12 1A 53 0E 4A 87 12 E2 82
-52 85 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
-3A 89 B0 81 90 92 48 96 92 53 C4 21 3E 40 2C 00
-B0 12 2A 80 B6 85 CA 86 28 83 BE 89 FC 93 60 96
-0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C
-59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E
-94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F F2 95 04 52
-52 43 4D 00 84 12 42 96 50 00 8E 96 04 52 52 41
-4D 00 84 12 42 96 50 01 9C 96 04 52 4C 41 4D 00
-84 12 42 96 50 02 AA 96 04 52 52 55 4D 00 84 12
-42 96 50 03 0C 96 05 50 55 53 48 4D 84 12 42 96
-00 15 C6 96 04 50 4F 50 4D 00 84 12 42 96 00 17
-85 12 00 3C B8 96 03 53 3E 3D 85 12 00 38 E6 96
-02 53 3C 00 85 12 00 34 D4 96 03 30 3E 3D 85 12
-00 30 FA 96 02 30 3C 00 85 12 00 30 00 00 02 55
-3C 00 85 12 00 2C 0E 97 03 55 3E 3D 85 12 00 28
-04 97 03 30 3C 3E 85 12 00 24 22 97 02 30 3D 00
-85 12 00 20 00 00 02 49 46 00 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 0E 4A 30 4D 18 97 04 54 48 45
-4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53 0A 89
-0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D 08 95
-04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C 00 00
-A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 4C 97 05 55
-4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21 2A 83
-0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03 08 DA
-89 48 00 00 A2 53 C6 21 30 4D 8C 95 05 41 47 41
-49 4E 87 12 E0 96 94 97 2A 80 00 00 05 57 48 49
-4C 45 87 12 3A 97 78 80 2A 80 F0 96 06 52 45 50
-45 41 54 00 87 12 E0 96 94 97 52 97 2A 80 F0 97
-3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43 00 00
-CA 23 98 42 C6 21 00 00 30 4D 1C 96 03 42 57 31
-84 12 EE 97 E0 21 0C 98 03 42 57 32 84 12 EE 97
-E2 21 18 98 03 42 57 33 84 12 EE 97 E4 21 30 98
-3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43 00 00
-8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F
-30 4D 00 00 03 46 57 31 84 12 2E 98 E6 21 54 98
-03 46 57 32 84 12 2E 98 E8 21 60 98 03 46 57 33
-84 12 2E 98 EA 21 3E 90 00 30 07 24 3E E0 00 04
-3E B0 00 10 02 24 3E E0 00 08 30 4D 6C 98 04 47
-4F 54 4F 00 87 12 E0 96 B0 89 BE 87 2A 80 00 00
-05 3F 47 4F 54 4F 87 12 76 98 B0 89 BE 87 2A 80
-00 00 03 4A 4D 50 87 12 B0 89 C2 97 2A 80 A0 98
-04 3F 4A 4D 50 00 87 12 76 98 B0 89 78 80 94 97
-2A 80
+80 01 92 D2 5E 01 08 18 38 40 59 14 18 83 FE 23
+19 83 FA 23 39 40 00 10 29 83 89 43 00 20 FC 23
+39 40 32 00 29 83 B9 40 9C 8E CE FF FB 23 B2 40
+26 83 E2 FF B2 40 81 00 80 05 92 42 02 18 86 05
+92 42 04 18 88 05 92 C3 80 05 92 D3 9A 05 3F 40
+80 20 31 40 E0 20 30 12 06 8E 47 3F 88 8E 07 43
+4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B
+0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53 F9 98
+FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D B2 89
+86 5B 54 48 45 4E 5D 00 30 4D 80 8F 86 5B 45 4C
+53 45 5D 00 87 12 14 84 00 00 C6 80 42 87 80 84
+24 87 34 80 40 82 F6 8F 44 80 1E 84 06 5B 54 48
+45 4E 5D 00 56 8F 4A 82 C6 8F F8 83 D0 80 58 80
+4A 82 9C 8F 2A 80 44 80 1E 84 06 5B 45 4C 53 45
+5D 00 56 8F 4A 82 E4 8F F8 83 D0 80 58 80 4A 82
+9A 8F 2A 80 1E 84 04 5B 49 46 5D 00 56 8F 4A 82
+9C 8F 3C 82 9A 8F F8 83 1E 84 05 0D 0A 6B 6F 20
+D6 83 8C 83 32 87 3C 82 9C 8F 8C 8F 84 5B 49 46
+5D 00 0E 93 3E 4F BE 27 30 4D 0C 90 89 5B 44 45
+46 49 4E 45 44 5D 87 12 42 87 80 84 EE 84 6A 80
+2A 80 1C 90 8B 5B 55 4E 44 45 46 49 4E 45 44 5D
+87 12 42 87 80 84 EE 84 6A 80 00 81 2A 80 50 90
+3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F 30 40 56 8D
+48 8C 06 4D 41 52 4B 45 52 00 B0 12 B8 89 BA 40
+84 12 FC FF BA 40 4E 90 FE FF 9A 42 C8 21 00 00
+28 83 8A 48 02 00 A2 52 C6 21 30 40 00 8A 1C 15
+B0 12 2A 80 80 84 EE 84 4A 82 A4 90 AA 85 40 82
+CE 88 BE 90 A6 90 39 4E 39 80 86 12 08 24 19 53
+02 20 2E 4E 04 3C 2E 53 19 53 01 24 2E 82 1B 17
+30 41 3E 40 28 00 B0 12 8E 90 19 42 C6 21 A2 53
+C6 21 89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 21
+92 53 C4 21 B0 12 2A 80 80 84 AA 85 40 82 FC 90
+F2 90 21 53 3E 90 10 00 7D 2D E1 2B FE 90 B2 41
+C4 21 DD 3F 87 12 42 87 74 84 0C 91 0C 43 1B 42
+C6 21 A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 27 20
+92 53 C4 21 B0 12 8E 90 3C 40 00 03 0E 93 1C 24
+3C 40 10 03 1E 93 18 24 3C 40 20 03 2E 93 14 24
+3C 40 20 02 2E 92 10 24 3C 40 30 02 3E 92 0C 24
+3C 40 30 03 3E 93 08 24 3C 40 30 00 19 42 C6 21
+A2 53 C6 21 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90
+26 00 07 20 3C 40 10 02 92 53 C4 21 B0 12 8E 90
+ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21
+B0 12 DA 90 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
+DA 90 92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10
+0C 5E DA 3F B0 12 DA 90 FA 23 3C 50 10 00 B0 12
+C2 90 EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 87 12
+42 87 74 84 D6 91 FE 90 26 00 00 00 3E 40 20 00
+03 20 3C 50 82 00 C8 3F B0 12 DA 90 E1 23 3C 50
+80 00 B0 12 C2 90 DC 3F D6 82 04 52 45 54 49 00
+87 12 14 84 00 13 B0 86 2A 80 14 84 2C 00 04 91
+CE 91 14 92 09 4B 2E 4E 0E DC A4 3F FC 8A 03 4D
+4F 56 84 12 0A 92 00 40 1E 92 05 4D 4F 56 2E 42
+84 12 0A 92 40 40 00 00 03 41 44 44 84 12 0A 92
+00 50 38 92 05 41 44 44 2E 42 84 12 0A 92 40 50
+44 92 04 41 44 44 43 00 84 12 0A 92 00 60 52 92
+06 41 44 44 43 2E 42 00 84 12 0A 92 40 60 FA 91
+04 53 55 42 43 00 84 12 0A 92 00 70 70 92 06 53
+55 42 43 2E 42 00 84 12 0A 92 40 70 7E 92 03 53
+55 42 84 12 0A 92 00 80 8E 92 05 53 55 42 2E 42
+84 12 0A 92 40 80 DE 8A 03 43 4D 50 84 12 0A 92
+00 90 A8 92 05 43 4D 50 2E 42 84 12 0A 92 40 90
+CC 8A 04 44 41 44 44 00 84 12 0A 92 00 A0 C2 92
+06 44 41 44 44 2E 42 00 84 12 0A 92 40 A0 B4 92
+03 42 49 54 84 12 0A 92 00 B0 E0 92 05 42 49 54
+2E 42 84 12 0A 92 40 B0 EC 92 03 42 49 43 84 12
+0A 92 00 C0 FA 92 05 42 49 43 2E 42 84 12 0A 92
+40 C0 06 93 03 42 49 53 84 12 0A 92 00 D0 14 93
+05 42 49 53 2E 42 84 12 0A 92 40 D0 00 00 03 58
+4F 52 84 12 0A 92 00 E0 2E 93 05 58 4F 52 2E 42
+84 12 0A 92 40 E0 60 92 03 41 4E 44 84 12 0A 92
+00 F0 48 93 05 41 4E 44 2E 42 84 12 0A 92 40 F0
+42 87 04 91 66 93 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4F 3F 9A 92 03 52 52 43 84 12 60 93
+00 10 78 93 05 52 52 43 2E 42 84 12 60 93 40 10
+84 93 04 53 57 50 42 00 84 12 60 93 80 10 92 93
+03 52 52 41 84 12 60 93 00 11 A0 93 05 52 52 41
+2E 42 84 12 60 93 40 11 AC 93 03 53 58 54 84 12
+60 93 80 11 00 00 04 50 55 53 48 00 84 12 60 93
+00 12 C6 93 06 50 55 53 48 2E 42 00 84 12 60 93
+40 12 20 93 04 43 41 4C 4C 00 84 12 60 93 80 12
+1A 53 0E 4A 87 12 34 82 1E 84 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 4C 88 42 87 74 84 10 94
+92 53 C4 21 3E 40 2C 00 B0 12 2A 80 80 84 AA 85
+40 82 CE 88 C4 91 28 94 0A 4E 3E 4F 1A 83 E0 33
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10
+5A 06 8F 3F BA 93 04 52 52 43 4D 00 84 12 0A 94
+50 00 56 94 04 52 52 41 4D 00 84 12 0A 94 50 01
+64 94 04 52 4C 41 4D 00 84 12 0A 94 50 02 72 94
+04 52 52 55 4D 00 84 12 0A 94 50 03 D4 93 05 50
+55 53 48 4D 84 12 0A 94 00 15 8E 94 04 50 4F 50
+4D 00 84 12 0A 94 00 17 80 94 03 53 3E 3D 85 12
+00 38 AA 94 02 53 3C 00 85 12 00 34 9C 94 03 30
+3E 3D 85 12 00 30 BE 94 02 30 3C 00 85 12 00 30
+00 00 02 55 3C 00 85 12 00 2C D2 94 03 55 3E 3D
+85 12 00 28 C8 94 03 30 3C 3E 85 12 00 24 E6 94
+02 30 3D 00 85 12 00 20 00 00 02 49 46 00 1A 42
+C6 21 8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D DC 94
+04 54 48 45 4E 00 1A 42 C6 21 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 63 2F 88 DA 00 00
+30 4D D0 92 04 45 4C 53 45 00 1A 42 C6 21 BA 40
+00 3C 00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F
+10 95 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C6 21 2A 83 0A 89 0A 11 3A 90 00 FE 42 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D 54 93
+05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+05 57 48 49 4C 45 87 12 FE 94 76 80 2A 80 B4 94
+06 52 45 50 45 41 54 00 87 12 86 95 16 95 2A 80
+B2 95 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CD 2F
+98 42 C6 21 00 00 30 4D E4 93 03 42 57 31 84 12
+B0 95 00 00 CA 95 03 42 57 32 84 12 B0 95 00 00
+D6 95 03 42 57 33 84 12 B0 95 00 00 EE 95 3D 41
+1A 42 C6 21 28 4E B2 92 C4 21 90 2B BA 4F 00 00
+A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
+57 31 84 12 EC 95 00 00 0E 96 03 46 57 32 84 12
+EC 95 00 00 1A 96 03 46 57 33 84 12 EC 95 00 00
+00 00 05 3F 47 4F 54 4F 3E 90 00 30 07 24 3E E0
+00 04 3E B0 00 10 02 24 3E E0 00 08 87 12 C0 88
+DA 86 2A 80 26 96 04 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C F2 3F
 @FFFE
-D4 91
+9C 8E
 q
diff --git a/binaries/MSP_EXP430FR2355_4MHz.txt b/binaries/MSP_EXP430FR2355_4MHz.txt
deleted file mode 100644 (file)
index 6b55a99..0000000
+++ /dev/null
@@ -1,404 +0,0 @@
-@1800
-10 00 02 00 21 BB A0 0F 05 00 18 00 C2 98 8A 8E
-2C 01 7B B0 FC 83 0E 84
-@8000
-2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
-8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 80
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 80 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 80 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 80 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 80 02 3E 52 00
-0E 12 3E 4F 30 4D 96 80 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 80 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 80 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 80 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 81 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 80 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 81 02 31 2D 00
-1E 83 30 4D D8 80 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 81
-02 30 3D 00 1E 83 0E 7E 30 4D 60 81 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 81 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 80 01 3E 3E 8F F4 3B EB 37 0E 81 02 42 4C 00
-85 12 20 00 AC 81 04 42 41 53 45 00 85 12 DC 21
-C8 80 05 53 54 41 54 45 85 12 BE 21 96 81 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 81 06 55 4D 2F
-4D 4F 44 00 30 12 62 80 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 80 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 81
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 81 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 82
-02 23 53 00 87 12 32 82 6A 82 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 82 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 81 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 81
-02 44 2E 00 87 12 D2 81 44 80 B0 80 4C 81 64 82
-BC 80 A2 82 7E 82 14 85 DC 84 2A 80 DC 81 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 80
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 82 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 80
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A 82
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 82 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 82 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 81 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 83 03 4B 45 59 30 40 A0 83
-18 42 8C 05 2F 83 8F 4E 00 00 B0 12 FC 83 92 B3
-9C 05 FD 27 1E 42 8C 05 B0 12 0E 84 30 4D 00 83
-06 41 43 43 45 50 54 00 3C 40 6A 84 3B 40 34 84
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E 84 92 B3 9C 05 05 24 18 42 8C 05 38 90
-0A 00 04 20 21 53 39 40 22 84 4D 15 A2 B3 9C 05
-FD 27 B2 40 11 00 8E 05 D2 C3 03 02 30 41 B2 40
-13 00 8E 05 D2 D3 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 84 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 8C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 9C 05 FD 27 82 48 8E 05 30 4D 60 84
-2D 83 92 B3 9C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 82 04 45 4D 49 54 00 30 40 8C 84 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 84 04 45 43 48
-4F 00 B2 40 82 48 58 84 82 43 DE 21 30 4D E0 82
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 84 92 43
-DE 21 30 4D 9C 82 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 84 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE 84 EF 3F 00 85
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 83 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A 85 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C 85 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 83 02 43
-52 00 30 40 46 85 87 12 52 85 02 0D 0A 00 14 85
-2A 80 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA 84 82 53 22 00 82 43 B4 21
-87 12 34 80 52 85 C8 87 34 80 22 00 B6 85 80 85
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 84 82 2E
-22 00 87 12 6C 85 34 80 14 85 C8 87 2A 80 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
-60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
-18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
-F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
-CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
-0C 4E 65 4C 74 40 80 00 3B 40 CA 21 3E 4B 0E 93
-1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
-FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
-0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
-09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E 80 34 40 00 80 30 4D A2 81 07 3E
-4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
-DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
-07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
-D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
-E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 87 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 87 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 81
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC 84 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 81 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 87 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 80 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E 85 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A 88 B0 81
-B6 85 44 88 3D 40 4C 88 E2 22 5D 3E 4E 88 0A 4E
-3E 4F 3D 40 64 88 39 27 3D 40 3E 88 1A E2 BE 21
-B3 27 AD 23 66 88 3E 4F 3D 40 3E 88 BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 8B
-CD 3F B6 87 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A 80 3A 88
-A2 88 B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C 81 04 51 55 49 54 00 82 43 08 18 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A 80
-42 85 92 84 DC 84 3A 88 DE 80 70 81 52 85 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E 89 34 80
-30 FF F2 82 8A 81 52 85 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E 89 24 83 D0 88 C0 83 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C 89 86 41 42 4F 52 54
-22 00 87 12 6C 85 34 80 2E 89 C8 87 2A 80 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 90 B0 12
-FC 83 92 C3 9C 05 38 40 A8 2A 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 9C 05 F2 23 87 12
-6A 90 34 80 DE 21 F2 80 B2 84 52 85 04 1B 5B 37
-6D 00 14 85 54 80 28 83 8A 89 42 85 52 85 05 6C
-69 6E 65 3A 14 85 40 81 D2 82 14 85 52 85 04 1B
-5B 30 6D 00 14 85 12 89 00 00 83 5B 27 5D 87 12
-B0 89 34 80 34 80 C8 87 C8 87 2A 80 08 86 01 27
-87 12 B0 81 B6 85 0E 86 28 83 BE 89 2A 80 6E 88
-CE 81 81 5C 92 42 C0 21 C4 21 30 4D 9A 89 81 5B
-82 43 BE 21 30 4D C2 89 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 83 82 49 53 00 87 12
-C8 81 F2 80 28 83 02 8A 9E 89 34 80 E0 89 C8 87
-2A 80 B0 89 E0 89 2A 80 EA 89 09 49 4D 4D 45 44
-49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 85 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 88 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 81 B6 85 0E 86 54 80
-28 83 BE 89 70 81 28 83 66 8A 34 80 34 80 C8 87
-C8 87 34 80 C8 87 C8 87 2A 80 CE 89 81 3B 82 93
-BE 21 A8 27 87 12 34 80 2A 80 C8 87 04 8B D0 89
-2A 80 6C 8A 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 8A BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 8A 01 3A 30 12 A4 8A
-87 12 92 85 B0 81 B6 85 CA 8A 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 8A 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 85
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A 89 B0 85 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 8A BA 40 86 12 FC FF E4 3F 16 88 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 8A BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C 8B 06 43 52 45 41 54
-45 00 B0 12 C0 8A BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 88 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 8B 05 44
-45 46 45 52 30 12 12 8B 8B 3F 6E 86 05 3E 42 4F
-44 59 2E 52 30 4D 6A 8B 04 43 4F 44 45 00 B0 12
-C0 8A 2A 82 82 4A C6 21 87 12 B2 8A 94 8E 66 8E
-2A 80 B8 8B 07 43 4F 44 45 4E 4E 4D 87 12 8C 8A
-D0 89 C2 8B 2A 80 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE 8E 04 8B 2A 80 1A 89 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A 8E DA 21 D9 3F E8 8B 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE 8E 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A 80 02 00 A2 52 C6 21 ED 3F 0A 8A 85 48 49 32
-4C 4F 87 12 F2 82 8C 8C C8 87 D0 89 94 8E 66 8E
-2A 80 5C 8C 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 83 00 00 2E 53 30 4D
-9E 8B 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 83 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E 85 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 8B 85 42 45 47 49 4E 30 40 F2 82 B2 8C
-85 55 4E 54 49 4C 39 40 28 83 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA 8B
-85 41 47 41 49 4E 39 40 24 83 EF 3F 34 8B 85 57
-48 49 4C 45 87 12 78 8C 78 80 2A 80 22 8A 86 52
-45 50 45 41 54 00 87 12 F6 8C B8 8C 2A 80 92 8C
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C 83 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA 87 84 4C 4F 4F 50 00 39 40
-5E 83 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 83 85 2B 4C 4F
-4F 50 39 40 4C 83 E5 3F 48 8D 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E 83 00 00 BA 40 24 83 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A 8D 04 4D 4F 56 45 00 0A 4E
-38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
-F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE 8C
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 8B
-34 80 10 00 34 80 00 00 3C 83 34 80 00 00 C8 87
-5E 83 0A 8E F2 82 34 80 C8 21 44 80 F2 80 C8 87
-FA 80 8A 8B 34 80 CA 21 FA 80 2A 80 AE 89 05 46
-4F 52 54 48 84 12 24 8E 8E 8E C2 91 CC 8E 2E 8E
-74 8C 7C 8D F8 8F BE 8E 8E 90 A8 90 D0 8C 34 91
-00 00 CC 8F D8 89 AC 8B 00 00 F0 8C 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 8E AC 97 14 98 60 97
-7E 98 26 97 A2 98 52 94 00 00 1C 97 CC 97 7E 97
-BC 97 62 95 00 00 00 00 B0 98 58 8E 5C 8E 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C 8A 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E 85 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 8D 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 8C 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA 8A 86 5B 54 48 45 4E 5D 00 30 4D 14 8F
-86 5B 45 4C 53 45 5D 00 87 12 34 80 00 00 36 81
-B0 81 B6 85 1C 88 44 80 28 83 8E 8F 8A 80 8A 80
-52 85 06 5B 54 48 45 4E 5D 00 EA 8E 32 83 5C 8F
-36 85 40 81 54 80 32 83 30 8F 2A 80 8A 80 8A 80
-52 85 06 5B 45 4C 53 45 5D 00 EA 8E 32 83 7C 8F
-36 85 40 81 54 80 32 83 2E 8F 2A 80 52 85 04 5B
-49 46 5D 00 EA 8E 32 83 30 8F 24 83 2E 8F 36 85
-52 85 05 0D 0A 6B 6F 20 14 85 92 84 2A 88 24 83
-30 8F 20 8F 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 8F 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 81 B6 85 0E 86 6C 80 2A 80 B4 8F 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 81 B6 85 0E 86
-6C 80 64 81 2A 80 E8 8F 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 8D 06 4D 41 52 4B 45 52 00
-B0 12 C0 8A BA 40 84 12 FC FF BA 40 E6 8F FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A 8B 34 8E C4 8E D8 8E 2C 90 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 8E
-09 50 57 52 5F 53 54 41 54 45 84 12 24 90 8A 8E
-C2 98 0E 8D 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E 90 92 42 0C 18 70 90 EF 3F 60 90 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E 90 92 42
-C6 21 70 90 30 4D 74 90 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 8D 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 84 24 84 B2 40 3E 91 3C 91
-B2 40 8A 8E 0E 18 B2 40 C2 98 0C 18 30 12 7E 90
-B2 40 8C 84 8A 84 B2 40 46 85 44 85 B2 40 A0 83
-9E 83 B2 40 18 00 0A 18 37 40 1A 80 36 40 BC 80
-35 40 0E 80 34 40 00 80 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 90 04 57 41 52 4D 00 30 40 3E 91 3D 40
-72 91 92 C3 30 01 1E 42 08 18 0E 93 11 24 F2 B2
-21 02 02 20 3E E3 1E 53 F2 D0 0C 00 2B 02 3E 90
-0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27 87 2F
-30 4D 52 85 06 0D 1B 5B 37 6D 23 00 14 85 E2 82
-52 85 1F 46 61 73 74 46 6F 72 74 68 20 56 33 30
-30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
-73 20 14 85 34 80 80 FF F2 82 28 81 D2 82 52 85
-0B 62 79 74 65 73 20 66 72 65 65 20 24 83 8A 89
-E2 8E 04 43 4F 4C 44 00 92 B3 8A 05 FD 23 B2 40
-04 A5 20 01 B2 40 88 5A CC 01 B2 43 06 02 92 43
-04 02 B2 40 FE FF 02 02 D2 D3 05 02 F2 43 22 02
-F2 D3 26 02 F2 D0 BF 00 47 02 F2 40 BF 00 43 02
-F2 40 40 00 45 02 B2 40 00 A5 60 01 B2 40 FF 1E
-80 01 B2 40 B4 00 82 01 B2 40 79 00 84 01 39 40
-40 00 82 43 88 01 92 D2 5E 01 08 18 38 40 59 14
-18 83 FE 23 19 83 FA 23 39 40 00 10 29 83 89 43
-00 20 FC 23 39 40 32 00 29 83 B9 40 D4 91 CE FF
-FB 23 B2 40 2C 84 E2 FF B2 40 81 00 80 05 92 42
-02 18 86 05 92 42 04 18 88 05 92 C3 80 05 92 D3
-9A 05 3F 40 80 20 31 40 E0 20 30 12 3A 91 41 3F
-38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21 09 9A
-03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A C4 21
-30 4D 1C 15 B0 12 2A 80 B6 85 0E 86 32 83 B8 92
-CA 86 28 83 BE 89 DA 92 BA 92 29 4E 39 90 86 12
-02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E 02 00
-04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41 3E 40
-28 00 B0 12 A2 92 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53 C4 21
-B0 12 2A 80 B6 85 CA 86 28 83 18 93 0E 93 21 53
-3E 90 10 00 83 2D E1 2B 1A 93 B2 41 C4 21 DD 3F
-87 12 B0 81 80 92 28 93 0C 43 1B 42 C6 21 A2 53
-C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53 C4 21
-B0 12 A2 92 0E 93 03 20 3C 40 00 03 21 3C 1E 93
-03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40 20 03
-17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92 03 20
-3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03 08 3C
-3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02
-92 53 C4 21 B0 12 A2 92 ED 3F 7A 90 40 00 16 20
-3C 40 20 00 92 53 C4 21 B0 12 F6 92 0C 20 3C 50
-10 00 3E 40 2B 00 B0 12 F6 92 92 92 C0 21 C4 21
-02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12 F6 92
-FA 23 3C 50 10 00 B0 12 DE 92 EF 3F 0C 43 1B 42
-C6 21 A2 53 C6 21 87 12 B0 81 80 92 FE 93 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F
-B0 12 F6 92 E1 23 3C 50 80 00 B0 12 DE 92 DC 3F
-1C 84 04 52 45 54 49 00 87 12 34 80 00 13 C8 87
-2A 80 34 80 2C 00 20 93 F6 93 3C 94 2E 4E 0E DC
-09 4B A4 3F 3E 8C 03 4D 4F 56 84 12 32 94 00 40
-46 94 05 4D 4F 56 2E 42 84 12 32 94 40 40 00 00
-03 41 44 44 84 12 32 94 00 50 60 94 05 41 44 44
-2E 42 84 12 32 94 40 50 6C 94 04 41 44 44 43 00
-84 12 32 94 00 60 7A 94 06 41 44 44 43 2E 42 00
-84 12 32 94 40 60 22 94 04 53 55 42 43 00 84 12
-32 94 00 70 98 94 06 53 55 42 43 2E 42 00 84 12
-32 94 40 70 A6 94 03 53 55 42 84 12 32 94 00 80
-B6 94 05 53 55 42 2E 42 84 12 32 94 40 80 20 8C
-03 43 4D 50 84 12 32 94 00 90 D0 94 05 43 4D 50
-2E 42 84 12 32 94 40 90 0E 8C 04 44 41 44 44 00
-84 12 32 94 00 A0 EA 94 06 44 41 44 44 2E 42 00
-84 12 32 94 40 A0 DC 94 03 42 49 54 84 12 32 94
-00 B0 08 95 05 42 49 54 2E 42 84 12 32 94 40 B0
-14 95 03 42 49 43 84 12 32 94 00 C0 22 95 05 42
-49 43 2E 42 84 12 32 94 40 C0 2E 95 03 42 49 53
-84 12 32 94 00 D0 3C 95 05 42 49 53 2E 42 84 12
-32 94 40 D0 00 00 03 58 4F 52 84 12 32 94 00 E0
-56 95 05 58 4F 52 2E 42 84 12 32 94 40 E0 88 94
-03 41 4E 44 84 12 32 94 00 F0 70 95 05 41 4E 44
-2E 42 84 12 32 94 40 F0 B0 81 20 93 8E 95 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F C2 94
-03 52 52 43 84 12 88 95 00 10 A0 95 05 52 52 43
-2E 42 84 12 88 95 40 10 AC 95 04 53 57 50 42 00
-84 12 88 95 80 10 BA 95 03 52 52 41 84 12 88 95
-00 11 C8 95 05 52 52 41 2E 42 84 12 88 95 40 11
-D4 95 03 53 58 54 84 12 88 95 80 11 00 00 04 50
-55 53 48 00 84 12 88 95 00 12 EE 95 06 50 55 53
-48 2E 42 00 84 12 88 95 40 12 48 95 04 43 41 4C
-4C 00 84 12 88 95 80 12 1A 53 0E 4A 87 12 E2 82
-52 85 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
-3A 89 B0 81 80 92 38 96 92 53 C4 21 3E 40 2C 00
-B0 12 2A 80 B6 85 CA 86 28 83 BE 89 EC 93 50 96
-0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C
-59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E
-94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F E2 95 04 52
-52 43 4D 00 84 12 32 96 50 00 7E 96 04 52 52 41
-4D 00 84 12 32 96 50 01 8C 96 04 52 4C 41 4D 00
-84 12 32 96 50 02 9A 96 04 52 52 55 4D 00 84 12
-32 96 50 03 FC 95 05 50 55 53 48 4D 84 12 32 96
-00 15 B6 96 04 50 4F 50 4D 00 84 12 32 96 00 17
-85 12 00 3C A8 96 03 53 3E 3D 85 12 00 38 D6 96
-02 53 3C 00 85 12 00 34 C4 96 03 30 3E 3D 85 12
-00 30 EA 96 02 30 3C 00 85 12 00 30 00 00 02 55
-3C 00 85 12 00 2C FE 96 03 55 3E 3D 85 12 00 28
-F4 96 03 30 3C 3E 85 12 00 24 12 97 02 30 3D 00
-85 12 00 20 00 00 02 49 46 00 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 0E 4A 30 4D 08 97 04 54 48 45
-4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53 0A 89
-0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D F8 94
-04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C 00 00
-A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 3C 97 05 55
-4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21 2A 83
-0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03 08 DA
-89 48 00 00 A2 53 C6 21 30 4D 7C 95 05 41 47 41
-49 4E 87 12 D0 96 84 97 2A 80 00 00 05 57 48 49
-4C 45 87 12 2A 97 78 80 2A 80 E0 96 06 52 45 50
-45 41 54 00 87 12 D0 96 84 97 42 97 2A 80 E0 97
-3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43 00 00
-CA 23 98 42 C6 21 00 00 30 4D 0C 96 03 42 57 31
-84 12 DE 97 E0 21 FC 97 03 42 57 32 84 12 DE 97
-E2 21 08 98 03 42 57 33 84 12 DE 97 E4 21 20 98
-3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43 00 00
-8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F
-30 4D 00 00 03 46 57 31 84 12 1E 98 E6 21 44 98
-03 46 57 32 84 12 1E 98 E8 21 50 98 03 46 57 33
-84 12 1E 98 EA 21 3E 90 00 30 07 24 3E E0 00 04
-3E B0 00 10 02 24 3E E0 00 08 30 4D 5C 98 04 47
-4F 54 4F 00 87 12 D0 96 B0 89 BE 87 2A 80 00 00
-05 3F 47 4F 54 4F 87 12 66 98 B0 89 BE 87 2A 80
-00 00 03 4A 4D 50 87 12 B0 89 B2 97 2A 80 90 98
-04 3F 4A 4D 50 00 87 12 66 98 B0 89 78 80 84 97
-2A 80
-@FFFE
-D4 91
-q
index 4ad26e7..c286c33 100644 (file)
 @1800
-10 00 04 00 51 55 40 1F 05 00 18 00 C2 98 8A 8E
-2C 01 7B B0 FC 83 0E 84
+10 00 04 00 51 55 40 1F 05 00 18 00 58 96 D0 8C
+2D 01 6B B0 B6 82 C8 82
 @8000
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 80
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 80 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 80 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 80 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 80 02 3E 52 00
-0E 12 3E 4F 30 4D 96 80 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 80 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 80 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 80 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 81 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 80 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 81 02 31 2D 00
-1E 83 30 4D D8 80 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 81
-02 30 3D 00 1E 83 0E 7E 30 4D 60 81 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 81 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 80 01 3E 3E 8F F4 3B EB 37 0E 81 02 42 4C 00
-85 12 20 00 AC 81 04 42 41 53 45 00 85 12 DC 21
-C8 80 05 53 54 41 54 45 85 12 BE 21 96 81 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 81 06 55 4D 2F
-4D 4F 44 00 30 12 62 80 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 80 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 81
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 81 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 82
-02 23 53 00 87 12 32 82 6A 82 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 82 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 81 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 81
-02 44 2E 00 87 12 D2 81 44 80 B0 80 4C 81 64 82
-BC 80 A2 82 7E 82 14 85 DC 84 2A 80 DC 81 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 80
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 82 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 80
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A 82
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 82 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 82 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 81 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 83 03 4B 45 59 30 40 A0 83
-18 42 8C 05 2F 83 8F 4E 00 00 B0 12 FC 83 92 B3
-9C 05 FD 27 1E 42 8C 05 B0 12 0E 84 30 4D 00 83
-06 41 43 43 45 50 54 00 3C 40 6A 84 3B 40 34 84
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E 84 92 B3 9C 05 05 24 18 42 8C 05 38 90
-0A 00 04 20 21 53 39 40 22 84 4D 15 A2 B3 9C 05
-FD 27 B2 40 11 00 8E 05 D2 C3 03 02 30 41 B2 40
-13 00 8E 05 D2 D3 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 84 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 8C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 9C 05 FD 27 82 48 8E 05 30 4D 60 84
-2D 83 92 B3 9C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 82 04 45 4D 49 54 00 30 40 8C 84 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 84 04 45 43 48
-4F 00 B2 40 82 48 58 84 82 43 DE 21 30 4D E0 82
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 84 92 43
-DE 21 30 4D 9C 82 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 84 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE 84 EF 3F 00 85
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 83 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A 85 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C 85 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 83 02 43
-52 00 30 40 46 85 87 12 52 85 02 0D 0A 00 14 85
-2A 80 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA 84 82 53 22 00 82 43 B4 21
-87 12 34 80 52 85 C8 87 34 80 22 00 B6 85 80 85
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 84 82 2E
-22 00 87 12 6C 85 34 80 14 85 C8 87 2A 80 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 80
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 80
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 80
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 80 02 3E 52 00 0E 12 3E 4F 30 4D 70 80 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 80 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 80 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 80
+01 21 BE 4F 00 00 3E 4F 30 4D CC 80 02 30 3D 00
+1E 83 0E 7E 30 4D FC 80 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 81 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 81 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 81 02 23 53 00 87 12 88 81 C0 81
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 81
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 80 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 81 34 80 86 80 D4 80 BA 81
+92 80 F8 81 D4 81 D6 83 42 87 82 83 2A 80 22 81
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 81 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 82 18 42 8C 05 2F 83 8F 4E
+00 00 B0 12 B6 82 92 B3 9C 05 FD 27 1E 42 8C 05
+B0 12 C8 82 30 4D A2 B3 9C 05 FD 27 B2 40 11 00
+8E 05 D2 C3 03 02 30 41 B2 40 13 00 8E 05 D2 D3
+03 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 82
+B0 12 B6 82 12 D2 0A 18 F9 3F F0 80 06 41 43 43
+45 50 54 00 3C 40 64 83 3B 40 2E 83 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 83
+92 B3 9C 05 05 24 18 42 8C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 8C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 9C 05
+FD 27 82 48 8E 05 30 4D 5A 83 2D 83 92 B3 9C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 80 04 45 4D 49
+54 00 30 40 86 83 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C 83 04 45 43 48 4F 00 B2 40 82 48
+52 83 82 43 DE 21 30 4D 32 82 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 83 92 43 DE 21 30 4D 20 82
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 83
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 83 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 81
+02 43 52 00 30 40 08 84 87 12 1E 84 02 0D 0A 00
+D6 83 2A 80 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 81 82 53 22 00 82 43 B4 21 87 12 14 84
+1E 84 B0 86 14 84 22 00 80 84 4C 84 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA 83 82 2E 22 00 87 12 38 84 14 84 D6 83
+B0 86 2A 80 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,301 +86,280 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E 80 34 40 00 80 30 4D A2 81 07 3E
+00 00 35 40 0E 80 34 40 00 80 30 4D 82 80 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 87 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 87 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 81
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC 84 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 81 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 87 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 80 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E 85 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A 88 B0 81
-B6 85 44 88 3D 40 4C 88 E2 22 5D 3E 4E 88 0A 4E
-3E 4F 3D 40 64 88 39 27 3D 40 3E 88 1A E2 BE 21
-B3 27 AD 23 66 88 3E 4F 3D 40 3E 88 BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 8B
-CD 3F B6 87 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A 80 3A 88
-A2 88 B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C 81 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 85 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 85 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 81 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 82 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 80 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC 82 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 83 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 86 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 84 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 84 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 87 42 87 80 84 50 87
+3D 40 58 87 CC 22 82 3E 5A 87 0A 4E 3E 4F 3D 40
+70 87 23 27 3D 40 4A 87 1A E2 BE 21 A1 27 B5 23
+72 87 3E 4F 3D 40 4A 87 B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 8A CB 3F D2 86
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 80 46 87 AE 87 B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 81 04 51 55 49 54 00 82 43 08 18 31 40
 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A 80
-42 85 92 84 DC 84 3A 88 DE 80 70 81 52 85 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E 89 34 80
-30 FF F2 82 8A 81 52 85 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E 89 24 83 D0 88 C0 83 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C 89 86 41 42 4F 52 54
-22 00 87 12 6C 85 34 80 2E 89 C8 87 2A 80 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 90 B0 12
-FC 83 92 C3 9C 05 38 40 50 55 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 9C 05 F2 23 87 12
-6A 90 34 80 DE 21 F2 80 B2 84 52 85 04 1B 5B 37
-6D 00 14 85 54 80 28 83 8A 89 42 85 52 85 05 6C
-69 6E 65 3A 14 85 40 81 D2 82 14 85 52 85 04 1B
-5B 30 6D 00 14 85 12 89 00 00 83 5B 27 5D 87 12
-B0 89 34 80 34 80 C8 87 C8 87 2A 80 08 86 01 27
-87 12 B0 81 B6 85 0E 86 28 83 BE 89 2A 80 6E 88
-CE 81 81 5C 92 42 C0 21 C4 21 30 4D 9A 89 81 5B
-82 43 BE 21 30 4D C2 89 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 83 82 49 53 00 87 12
-C8 81 F2 80 28 83 02 8A 9E 89 34 80 E0 89 C8 87
-2A 80 B0 89 E0 89 2A 80 EA 89 09 49 4D 4D 45 44
+04 84 8C 83 42 87 82 83 46 87 A4 80 0C 81 1E 84
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 88
+14 84 30 FF A0 86 26 81 1E 84 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 88 3C 82 E0 87 C2 86 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E 88 86 41 42 4F
+52 54 22 00 87 12 38 84 14 84 40 88 B0 86 2A 80
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 8D
+B0 12 B6 82 92 C3 9C 05 38 40 50 55 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 9C 05 F3 23 87 12
+42 8D 14 84 DE 21 EA 80 AC 83 1E 84 04 1B 5B 37
+6D 00 D6 83 58 80 40 82 9A 88 04 84 1E 84 05 6C
+69 6E 65 3A D6 83 D0 80 24 82 D6 83 1E 84 04 1B
+5B 30 6D 00 D6 83 24 88 00 00 83 5B 27 5D 87 12
+C0 88 14 84 14 84 B0 86 B0 86 2A 80 E8 84 01 27
+87 12 42 87 80 84 EE 84 40 82 CE 88 2A 80 7A 87
+32 81 81 5C 92 42 C0 21 C4 21 30 4D AA 88 81 5B
+82 43 BE 21 30 4D D2 88 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 86 82 49 53 00 87 12
+BE 87 EA 80 40 82 12 89 AE 88 14 84 F0 88 B0 86
+2A 80 C0 88 F0 88 2A 80 FA 88 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 85 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 88 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 81 B6 85 0E 86 54 80
-28 83 BE 89 70 81 28 83 66 8A 34 80 34 80 C8 87
-C8 87 34 80 C8 87 C8 87 2A 80 CE 89 81 3B 82 93
-BE 21 A8 27 87 12 34 80 2A 80 C8 87 04 8B D0 89
-2A 80 6C 8A 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 8A BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 8A 01 3A 30 12 A4 8A
-87 12 92 85 B0 81 B6 85 CA 8A 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 8A 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 85
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A 89 B0 85 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 8A BA 40 86 12 FC FF E4 3F 16 88 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 8A BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C 8B 06 43 52 45 41 54
-45 00 B0 12 C0 8A BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 88 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 8B 05 44
-45 46 45 52 30 12 12 8B 8B 3F 6E 86 05 3E 42 4F
-44 59 2E 52 30 4D 6A 8B 04 43 4F 44 45 00 B0 12
-C0 8A 2A 82 82 4A C6 21 87 12 B2 8A 94 8E 66 8E
-2A 80 B8 8B 07 43 4F 44 45 4E 4E 4D 87 12 8C 8A
-D0 89 C2 8B 2A 80 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE 8E 04 8B 2A 80 1A 89 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A 8E DA 21 D9 3F E8 8B 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE 8E 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A 80 02 00 A2 52 C6 21 ED 3F 0A 8A 85 48 49 32
-4C 4F 87 12 F2 82 8C 8C C8 87 D0 89 94 8E 66 8E
-2A 80 5C 8C 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 83 00 00 2E 53 30 4D
-9E 8B 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 83 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E 85 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 8B 85 42 45 47 49 4E 30 40 F2 82 B2 8C
-85 55 4E 54 49 4C 39 40 28 83 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA 8B
-85 41 47 41 49 4E 39 40 24 83 EF 3F 34 8B 85 57
-48 49 4C 45 87 12 78 8C 78 80 2A 80 22 8A 86 52
-45 50 45 41 54 00 87 12 F6 8C B8 8C 2A 80 92 8C
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C 83 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA 87 84 4C 4F 4F 50 00 39 40
-5E 83 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 83 85 2B 4C 4F
-4F 50 39 40 4C 83 E5 3F 48 8D 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E 83 00 00 BA 40 24 83 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A 8D 04 4D 4F 56 45 00 0A 4E
+C4 87 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 87
+80 84 EE 84 58 80 40 82 CE 88 0C 81 40 82 5C 89
+14 84 14 84 B0 86 B0 86 14 84 B0 86 B0 86 2A 80
+DE 88 81 3B 82 93 BE 21 B5 27 87 12 14 84 2A 80
+B0 86 FA 89 E0 88 2A 80 62 89 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 89 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A 89 01 3A 30 12 A0 89 92 B3 C6 21 A2 63 C6 21
+87 12 42 87 80 84 C8 89 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 84 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 88 90 87 05 44 45 46 45 52
+B0 12 B8 89 BA 40 30 40 FC FF BA 40 AE 89 FE FF
+E3 3F 1E 87 06 43 52 45 41 54 45 00 B0 12 B8 89
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 8A 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 85 05 3E 42 4F 44 59 2E 52
+30 4D 44 8A 04 43 4F 44 45 00 B0 12 B8 89 A2 82
+C6 21 87 12 D2 8C AC 8C 2A 80 84 8A 07 43 4F 44
+45 4E 4E 4D B0 12 86 89 F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 8C FA 89 2A 80 2C 88 03 41
+53 4D B2 40 B0 8C DA 21 E0 3F AC 8A 06 45 4E 44
+41 53 4D 00 87 12 B4 8A F4 8C 2A 80 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 8C 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A 80
+02 00 A2 52 C6 21 ED 3F 1A 89 85 48 49 32 4C 4F
+87 12 A0 86 4A 8B B0 86 E0 88 D2 8C AC 8C 2A 80
+1A 8B 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 82 00 00 2E 53 30 4D 5E 8A
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C 82 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 83
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C 8A 85 42 45 47 49 4E 30 40 A0 86 70 8B 85 55
+4E 54 49 4C 39 40 40 82 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE 8A 85 41
+47 41 49 4E 39 40 3C 82 EF 3F 7A 84 85 57 48 49
+4C 45 87 12 36 8B 76 80 2A 80 34 84 86 52 45 50
+45 41 54 00 87 12 B4 8B 76 8B 2A 80 50 8B 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 82 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 86 84 4C 4F 4F 50 00 39 40 76 82
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 82 85 2B 4C 4F 4F 50
+39 40 64 82 E5 3F 06 8C 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE 8C
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 8B
-34 80 10 00 34 80 00 00 3C 83 34 80 00 00 C8 87
-5E 83 0A 8E F2 82 34 80 C8 21 44 80 F2 80 C8 87
-FA 80 8A 8B 34 80 CA 21 FA 80 2A 80 AE 89 05 46
-4F 52 54 48 84 12 24 8E 8E 8E C2 91 CC 8E 2E 8E
-74 8C 7C 8D F8 8F BE 8E 8E 90 A8 90 D0 8C 34 91
-00 00 CC 8F D8 89 AC 8B 00 00 F0 8C 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 8E AC 97 14 98 60 97
-7E 98 26 97 A2 98 52 94 00 00 1C 97 CC 97 7E 97
-BC 97 62 95 00 00 00 00 B0 98 58 8E 5C 8E 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C 8A 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E 85 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 8D 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 8C 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA 8A 86 5B 54 48 45 4E 5D 00 30 4D 14 8F
-86 5B 45 4C 53 45 5D 00 87 12 34 80 00 00 36 81
-B0 81 B6 85 1C 88 44 80 28 83 8E 8F 8A 80 8A 80
-52 85 06 5B 54 48 45 4E 5D 00 EA 8E 32 83 5C 8F
-36 85 40 81 54 80 32 83 30 8F 2A 80 8A 80 8A 80
-52 85 06 5B 45 4C 53 45 5D 00 EA 8E 32 83 7C 8F
-36 85 40 81 54 80 32 83 2E 8F 2A 80 52 85 04 5B
-49 46 5D 00 EA 8E 32 83 30 8F 24 83 2E 8F 36 85
-52 85 05 0D 0A 6B 6F 20 14 85 92 84 2A 88 24 83
-30 8F 20 8F 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 8F 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 81 B6 85 0E 86 6C 80 2A 80 B4 8F 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 81 B6 85 0E 86
-6C 80 64 81 2A 80 E8 8F 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 8D 06 4D 41 52 4B 45 52 00
-B0 12 C0 8A BA 40 84 12 FC FF BA 40 E6 8F FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A 8B 34 8E C4 8E D8 8E 2C 90 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 8E
-09 50 57 52 5F 53 54 41 54 45 84 12 24 90 8A 8E
-C2 98 0E 8D 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E 90 92 42 0C 18 70 90 EF 3F 60 90 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E 90 92 42
-C6 21 70 90 30 4D 74 90 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 8D 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 84 24 84 B2 40 3E 91 3C 91
-B2 40 8A 8E 0E 18 B2 40 C2 98 0C 18 30 12 7E 90
-B2 40 8C 84 8A 84 B2 40 46 85 44 85 B2 40 A0 83
-9E 83 B2 40 18 00 0A 18 37 40 1A 80 36 40 BC 80
-35 40 0E 80 34 40 00 80 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 90 04 57 41 52 4D 00 30 40 3E 91 3D 40
-72 91 92 C3 30 01 1E 42 08 18 0E 93 11 24 F2 B2
-21 02 02 20 3E E3 1E 53 F2 D0 0C 00 2B 02 3E 90
-0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27 87 2F
-30 4D 52 85 06 0D 1B 5B 37 6D 23 00 14 85 E2 82
-52 85 1F 46 61 73 74 46 6F 72 74 68 20 56 33 30
-30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
-73 20 14 85 34 80 80 FF F2 82 28 81 D2 82 52 85
-0B 62 79 74 65 73 20 66 72 65 65 20 24 83 8A 89
-E2 8E 04 43 4F 4C 44 00 92 B3 8A 05 FD 23 B2 40
-04 A5 20 01 B2 40 88 5A CC 01 B2 43 06 02 92 43
-04 02 B2 40 FE FF 02 02 D2 D3 05 02 F2 43 22 02
-F2 D3 26 02 F2 D0 BF 00 47 02 F2 40 BF 00 43 02
-F2 40 40 00 45 02 B2 40 00 A5 60 01 B2 40 FF 1E
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 84
+CA 21 F2 80 2A 80 84 12 7E 8C AE 8B 3E 8F DE 8B
+BE 88 32 8B 3A 8C 52 90 64 84 66 8D 80 8D 8E 8B
+00 8E 00 00 24 90 E8 88 78 8A 00 00 84 12 7E 8C
+70 95 D2 95 24 95 46 96 EA 94 00 00 1A 92 00 00
+E0 94 90 95 42 95 80 95 2A 93 00 00 00 00 22 96
+AA 8C 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 8C EE 8C
+F4 8C 04 8D 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 89 09 50 57 52 5F 53 54 41
+54 45 84 12 FC 8C D0 8C 58 96 CC 8B 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 8D 92 42 0C 18
+48 8D EF 3F 38 8D 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 8D 92 42 C6 21 48 8D 30 4D 4C 8D
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC 8B 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 82
+DE 82 B2 40 0A 8E 08 8E B2 40 D0 8C 0E 18 B2 40
+58 96 0C 18 30 12 56 8D B2 40 86 83 84 83 B2 40
+08 84 06 84 B2 40 98 82 96 82 B2 40 18 00 0A 18
+37 40 1A 80 36 40 92 80 35 40 0E 80 34 40 00 80
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A 8D
+04 57 41 52 4D 00 30 40 0A 8E 3D 40 3E 8E 92 C3
+30 01 1E 42 08 18 0E 93 11 24 F2 B2 21 02 02 20
+3E E3 1E 53 F2 D0 0C 00 2B 02 3E 90 0A 00 B8 27
+3E 90 16 00 B5 2F 2E 93 84 27 8D 2F 30 4D 1E 84
+06 0D 1B 5B 37 6D 23 00 D6 83 34 82 1E 84 19 46
+61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54
+68 6F 6F 72 65 6E 73 20 D6 83 14 84 30 FF A0 86
+B8 80 24 82 1E 84 0A 62 79 74 65 73 20 66 72 65
+65 00 3C 82 9A 88 82 8B 04 43 4F 4C 44 00 92 B3
+8A 05 FD 23 B2 40 04 A5 20 01 3E 8E B2 40 88 5A
+CC 01 B2 43 06 02 B2 40 FE FF 02 02 D2 D3 05 02
+F2 D3 26 02 F2 43 22 02 F2 D3 47 02 F2 40 BF 00
+43 02 B2 40 00 A5 60 01 82 43 88 01 B2 40 FF 1E
 80 01 B2 40 B6 00 82 01 B2 40 F4 00 84 01 39 40
-80 00 82 43 88 01 92 D2 5E 01 08 18 38 40 59 14
-18 83 FE 23 19 83 FA 23 39 40 00 10 29 83 89 43
-00 20 FC 23 39 40 32 00 29 83 B9 40 D4 91 CE FF
-FB 23 B2 40 2C 84 E2 FF B2 40 81 00 80 05 92 42
-02 18 86 05 92 42 04 18 88 05 92 C3 80 05 92 D3
-9A 05 3F 40 80 20 31 40 E0 20 30 12 3A 91 41 3F
-38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21 09 9A
-03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A C4 21
-30 4D 1C 15 B0 12 2A 80 B6 85 0E 86 32 83 B8 92
-CA 86 28 83 BE 89 DA 92 BA 92 29 4E 39 90 86 12
-02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E 02 00
-04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41 3E 40
-28 00 B0 12 A2 92 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53 C4 21
-B0 12 2A 80 B6 85 CA 86 28 83 18 93 0E 93 21 53
-3E 90 10 00 83 2D E1 2B 1A 93 B2 41 C4 21 DD 3F
-87 12 B0 81 80 92 28 93 0C 43 1B 42 C6 21 A2 53
-C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53 C4 21
-B0 12 A2 92 0E 93 03 20 3C 40 00 03 21 3C 1E 93
-03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40 20 03
-17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92 03 20
-3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03 08 3C
-3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02
-92 53 C4 21 B0 12 A2 92 ED 3F 7A 90 40 00 16 20
-3C 40 20 00 92 53 C4 21 B0 12 F6 92 0C 20 3C 50
-10 00 3E 40 2B 00 B0 12 F6 92 92 92 C0 21 C4 21
-02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12 F6 92
-FA 23 3C 50 10 00 B0 12 DE 92 EF 3F 0C 43 1B 42
-C6 21 A2 53 C6 21 87 12 B0 81 80 92 FE 93 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F
-B0 12 F6 92 E1 23 3C 50 80 00 B0 12 DE 92 DC 3F
-1C 84 04 52 45 54 49 00 87 12 34 80 00 13 C8 87
-2A 80 34 80 2C 00 20 93 F6 93 3C 94 2E 4E 0E DC
-09 4B A4 3F 3E 8C 03 4D 4F 56 84 12 32 94 00 40
-46 94 05 4D 4F 56 2E 42 84 12 32 94 40 40 00 00
-03 41 44 44 84 12 32 94 00 50 60 94 05 41 44 44
-2E 42 84 12 32 94 40 50 6C 94 04 41 44 44 43 00
-84 12 32 94 00 60 7A 94 06 41 44 44 43 2E 42 00
-84 12 32 94 40 60 22 94 04 53 55 42 43 00 84 12
-32 94 00 70 98 94 06 53 55 42 43 2E 42 00 84 12
-32 94 40 70 A6 94 03 53 55 42 84 12 32 94 00 80
-B6 94 05 53 55 42 2E 42 84 12 32 94 40 80 20 8C
-03 43 4D 50 84 12 32 94 00 90 D0 94 05 43 4D 50
-2E 42 84 12 32 94 40 90 0E 8C 04 44 41 44 44 00
-84 12 32 94 00 A0 EA 94 06 44 41 44 44 2E 42 00
-84 12 32 94 40 A0 DC 94 03 42 49 54 84 12 32 94
-00 B0 08 95 05 42 49 54 2E 42 84 12 32 94 40 B0
-14 95 03 42 49 43 84 12 32 94 00 C0 22 95 05 42
-49 43 2E 42 84 12 32 94 40 C0 2E 95 03 42 49 53
-84 12 32 94 00 D0 3C 95 05 42 49 53 2E 42 84 12
-32 94 40 D0 00 00 03 58 4F 52 84 12 32 94 00 E0
-56 95 05 58 4F 52 2E 42 84 12 32 94 40 E0 88 94
-03 41 4E 44 84 12 32 94 00 F0 70 95 05 41 4E 44
-2E 42 84 12 32 94 40 F0 B0 81 20 93 8E 95 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F C2 94
-03 52 52 43 84 12 88 95 00 10 A0 95 05 52 52 43
-2E 42 84 12 88 95 40 10 AC 95 04 53 57 50 42 00
-84 12 88 95 80 10 BA 95 03 52 52 41 84 12 88 95
-00 11 C8 95 05 52 52 41 2E 42 84 12 88 95 40 11
-D4 95 03 53 58 54 84 12 88 95 80 11 00 00 04 50
-55 53 48 00 84 12 88 95 00 12 EE 95 06 50 55 53
-48 2E 42 00 84 12 88 95 40 12 48 95 04 43 41 4C
-4C 00 84 12 88 95 80 12 1A 53 0E 4A 87 12 E2 82
-52 85 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
-3A 89 B0 81 80 92 38 96 92 53 C4 21 3E 40 2C 00
-B0 12 2A 80 B6 85 CA 86 28 83 BE 89 EC 93 50 96
-0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C
-59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E
-94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F E2 95 04 52
-52 43 4D 00 84 12 32 96 50 00 7E 96 04 52 52 41
-4D 00 84 12 32 96 50 01 8C 96 04 52 4C 41 4D 00
-84 12 32 96 50 02 9A 96 04 52 52 55 4D 00 84 12
-32 96 50 03 FC 95 05 50 55 53 48 4D 84 12 32 96
-00 15 B6 96 04 50 4F 50 4D 00 84 12 32 96 00 17
-85 12 00 3C A8 96 03 53 3E 3D 85 12 00 38 D6 96
-02 53 3C 00 85 12 00 34 C4 96 03 30 3E 3D 85 12
-00 30 EA 96 02 30 3C 00 85 12 00 30 00 00 02 55
-3C 00 85 12 00 2C FE 96 03 55 3E 3D 85 12 00 28
-F4 96 03 30 3C 3E 85 12 00 24 12 97 02 30 3D 00
-85 12 00 20 00 00 02 49 46 00 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 0E 4A 30 4D 08 97 04 54 48 45
-4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53 0A 89
-0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D F8 94
-04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C 00 00
-A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 3C 97 05 55
-4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21 2A 83
-0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03 08 DA
-89 48 00 00 A2 53 C6 21 30 4D 7C 95 05 41 47 41
-49 4E 87 12 D0 96 84 97 2A 80 00 00 05 57 48 49
-4C 45 87 12 2A 97 78 80 2A 80 E0 96 06 52 45 50
-45 41 54 00 87 12 D0 96 84 97 42 97 2A 80 E0 97
-3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43 00 00
-CA 23 98 42 C6 21 00 00 30 4D 0C 96 03 42 57 31
-84 12 DE 97 E0 21 FC 97 03 42 57 32 84 12 DE 97
-E2 21 08 98 03 42 57 33 84 12 DE 97 E4 21 20 98
-3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43 00 00
-8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F
-30 4D 00 00 03 46 57 31 84 12 1E 98 E6 21 44 98
-03 46 57 32 84 12 1E 98 E8 21 50 98 03 46 57 33
-84 12 1E 98 EA 21 3E 90 00 30 07 24 3E E0 00 04
-3E B0 00 10 02 24 3E E0 00 08 30 4D 5C 98 04 47
-4F 54 4F 00 87 12 D0 96 B0 89 BE 87 2A 80 00 00
-05 3F 47 4F 54 4F 87 12 66 98 B0 89 BE 87 2A 80
-00 00 03 4A 4D 50 87 12 B0 89 B2 97 2A 80 90 98
-04 3F 4A 4D 50 00 87 12 66 98 B0 89 78 80 84 97
-2A 80
+80 00 92 D2 5E 01 08 18 38 40 59 14 18 83 FE 23
+19 83 FA 23 39 40 00 10 29 83 89 43 00 20 FC 23
+39 40 32 00 29 83 B9 40 9C 8E CE FF FB 23 B2 40
+26 83 E2 FF B2 40 81 00 80 05 92 42 02 18 86 05
+92 42 04 18 88 05 92 C3 80 05 92 D3 9A 05 3F 40
+80 20 31 40 E0 20 30 12 06 8E 4F 3F 88 8E 07 43
+4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B
+0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53 F9 98
+FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D B2 89
+86 5B 54 48 45 4E 5D 00 30 4D 70 8F 86 5B 45 4C
+53 45 5D 00 87 12 14 84 00 00 C6 80 42 87 80 84
+24 87 34 80 40 82 E6 8F 44 80 1E 84 06 5B 54 48
+45 4E 5D 00 46 8F 4A 82 B6 8F F8 83 D0 80 58 80
+4A 82 8C 8F 2A 80 44 80 1E 84 06 5B 45 4C 53 45
+5D 00 46 8F 4A 82 D4 8F F8 83 D0 80 58 80 4A 82
+8A 8F 2A 80 1E 84 04 5B 49 46 5D 00 46 8F 4A 82
+8C 8F 3C 82 8A 8F F8 83 1E 84 05 0D 0A 6B 6F 20
+D6 83 8C 83 32 87 3C 82 8C 8F 7C 8F 84 5B 49 46
+5D 00 0E 93 3E 4F BE 27 30 4D FC 8F 89 5B 44 45
+46 49 4E 45 44 5D 87 12 42 87 80 84 EE 84 6A 80
+2A 80 0C 90 8B 5B 55 4E 44 45 46 49 4E 45 44 5D
+87 12 42 87 80 84 EE 84 6A 80 00 81 2A 80 40 90
+3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F 30 40 56 8D
+48 8C 06 4D 41 52 4B 45 52 00 B0 12 B8 89 BA 40
+84 12 FC FF BA 40 3E 90 FE FF 9A 42 C8 21 00 00
+28 83 8A 48 02 00 A2 52 C6 21 30 40 00 8A 1C 15
+B0 12 2A 80 80 84 EE 84 4A 82 94 90 AA 85 40 82
+CE 88 AE 90 96 90 39 4E 39 80 86 12 08 24 19 53
+02 20 2E 4E 04 3C 2E 53 19 53 01 24 2E 82 1B 17
+30 41 3E 40 28 00 B0 12 7E 90 19 42 C6 21 A2 53
+C6 21 89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 21
+92 53 C4 21 B0 12 2A 80 80 84 AA 85 40 82 EC 90
+E2 90 21 53 3E 90 10 00 7D 2D E1 2B EE 90 B2 41
+C4 21 DD 3F 87 12 42 87 74 84 FC 90 0C 43 1B 42
+C6 21 A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 27 20
+92 53 C4 21 B0 12 7E 90 3C 40 00 03 0E 93 1C 24
+3C 40 10 03 1E 93 18 24 3C 40 20 03 2E 93 14 24
+3C 40 20 02 2E 92 10 24 3C 40 30 02 3E 92 0C 24
+3C 40 30 03 3E 93 08 24 3C 40 30 00 19 42 C6 21
+A2 53 C6 21 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90
+26 00 07 20 3C 40 10 02 92 53 C4 21 B0 12 7E 90
+ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21
+B0 12 CA 90 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
+CA 90 92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10
+0C 5E DA 3F B0 12 CA 90 FA 23 3C 50 10 00 B0 12
+B2 90 EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 87 12
+42 87 74 84 C6 91 FE 90 26 00 00 00 3E 40 20 00
+03 20 3C 50 82 00 C8 3F B0 12 CA 90 E1 23 3C 50
+80 00 B0 12 B2 90 DC 3F D6 82 04 52 45 54 49 00
+87 12 14 84 00 13 B0 86 2A 80 14 84 2C 00 F4 90
+BE 91 04 92 09 4B 2E 4E 0E DC A4 3F FC 8A 03 4D
+4F 56 84 12 FA 91 00 40 0E 92 05 4D 4F 56 2E 42
+84 12 FA 91 40 40 00 00 03 41 44 44 84 12 FA 91
+00 50 28 92 05 41 44 44 2E 42 84 12 FA 91 40 50
+34 92 04 41 44 44 43 00 84 12 FA 91 00 60 42 92
+06 41 44 44 43 2E 42 00 84 12 FA 91 40 60 EA 91
+04 53 55 42 43 00 84 12 FA 91 00 70 60 92 06 53
+55 42 43 2E 42 00 84 12 FA 91 40 70 6E 92 03 53
+55 42 84 12 FA 91 00 80 7E 92 05 53 55 42 2E 42
+84 12 FA 91 40 80 DE 8A 03 43 4D 50 84 12 FA 91
+00 90 98 92 05 43 4D 50 2E 42 84 12 FA 91 40 90
+CC 8A 04 44 41 44 44 00 84 12 FA 91 00 A0 B2 92
+06 44 41 44 44 2E 42 00 84 12 FA 91 40 A0 A4 92
+03 42 49 54 84 12 FA 91 00 B0 D0 92 05 42 49 54
+2E 42 84 12 FA 91 40 B0 DC 92 03 42 49 43 84 12
+FA 91 00 C0 EA 92 05 42 49 43 2E 42 84 12 FA 91
+40 C0 F6 92 03 42 49 53 84 12 FA 91 00 D0 04 93
+05 42 49 53 2E 42 84 12 FA 91 40 D0 00 00 03 58
+4F 52 84 12 FA 91 00 E0 1E 93 05 58 4F 52 2E 42
+84 12 FA 91 40 E0 50 92 03 41 4E 44 84 12 FA 91
+00 F0 38 93 05 41 4E 44 2E 42 84 12 FA 91 40 F0
+42 87 F4 90 56 93 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4F 3F 8A 92 03 52 52 43 84 12 50 93
+00 10 68 93 05 52 52 43 2E 42 84 12 50 93 40 10
+74 93 04 53 57 50 42 00 84 12 50 93 80 10 82 93
+03 52 52 41 84 12 50 93 00 11 90 93 05 52 52 41
+2E 42 84 12 50 93 40 11 9C 93 03 53 58 54 84 12
+50 93 80 11 00 00 04 50 55 53 48 00 84 12 50 93
+00 12 B6 93 06 50 55 53 48 2E 42 00 84 12 50 93
+40 12 10 93 04 43 41 4C 4C 00 84 12 50 93 80 12
+1A 53 0E 4A 87 12 34 82 1E 84 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 4C 88 42 87 74 84 00 94
+92 53 C4 21 3E 40 2C 00 B0 12 2A 80 80 84 AA 85
+40 82 CE 88 B4 91 18 94 0A 4E 3E 4F 1A 83 E0 33
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10
+5A 06 8F 3F AA 93 04 52 52 43 4D 00 84 12 FA 93
+50 00 46 94 04 52 52 41 4D 00 84 12 FA 93 50 01
+54 94 04 52 4C 41 4D 00 84 12 FA 93 50 02 62 94
+04 52 52 55 4D 00 84 12 FA 93 50 03 C4 93 05 50
+55 53 48 4D 84 12 FA 93 00 15 7E 94 04 50 4F 50
+4D 00 84 12 FA 93 00 17 70 94 03 53 3E 3D 85 12
+00 38 9A 94 02 53 3C 00 85 12 00 34 8C 94 03 30
+3E 3D 85 12 00 30 AE 94 02 30 3C 00 85 12 00 30
+00 00 02 55 3C 00 85 12 00 2C C2 94 03 55 3E 3D
+85 12 00 28 B8 94 03 30 3C 3E 85 12 00 24 D6 94
+02 30 3D 00 85 12 00 20 00 00 02 49 46 00 1A 42
+C6 21 8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D CC 94
+04 54 48 45 4E 00 1A 42 C6 21 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 63 2F 88 DA 00 00
+30 4D C0 92 04 45 4C 53 45 00 1A 42 C6 21 BA 40
+00 3C 00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F
+00 95 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C6 21 2A 83 0A 89 0A 11 3A 90 00 FE 42 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D 44 93
+05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+05 57 48 49 4C 45 87 12 EE 94 76 80 2A 80 A4 94
+06 52 45 50 45 41 54 00 87 12 76 95 06 95 2A 80
+A2 95 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CD 2F
+98 42 C6 21 00 00 30 4D D4 93 03 42 57 31 84 12
+A0 95 00 00 BA 95 03 42 57 32 84 12 A0 95 00 00
+C6 95 03 42 57 33 84 12 A0 95 00 00 DE 95 3D 41
+1A 42 C6 21 28 4E B2 92 C4 21 90 2B BA 4F 00 00
+A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
+57 31 84 12 DC 95 00 00 FE 95 03 46 57 32 84 12
+DC 95 00 00 0A 96 03 46 57 33 84 12 DC 95 00 00
+00 00 05 3F 47 4F 54 4F 3E 90 00 30 07 24 3E E0
+00 04 3E B0 00 10 02 24 3E E0 00 08 87 12 C0 88
+DA 86 2A 80 16 96 04 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C F2 3F
 @FFFE
-D4 91
+9C 8E
 q
index 781937d..5464dd7 100644 (file)
 @1800
-10 00 08 00 A1 F7 80 3E 05 00 18 00 C4 DC 8A D2
-2C 01 7B B0 FC C7 0E C8
+10 00 08 00 A1 F7 80 3E 05 00 18 00 60 DA D0 D0
+2D 01 6B B0 B6 C6 C8 C6
 @C400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C4
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C4 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C4 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C4 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C4 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C4 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C4 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C4 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C4 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C5 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C4 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C5 02 31 2D 00
-1E 83 30 4D D8 C4 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C5
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C5 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C5 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C4 01 3E 3E 8F F4 3B EB 37 0E C5 02 42 4C 00
-85 12 20 00 AC C5 04 42 41 53 45 00 85 12 DC 21
-C8 C4 05 53 54 41 54 45 85 12 BE 21 96 C5 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 C5 06 55 4D 2F
-4D 4F 44 00 30 12 62 C4 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C4 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C5
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 C5 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 C6
-02 23 53 00 87 12 32 C6 6A C6 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C6 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C5 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C5
-02 44 2E 00 87 12 D2 C5 44 C4 B0 C4 4C C5 64 C6
-BC C4 A2 C6 7E C6 14 C9 DC C8 2A C4 DC C5 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C4
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C6 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 C4
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A C6
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C6 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C6 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C5 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C7 03 4B 45 59 30 40 A0 C7
-18 42 0C 05 2F 83 8F 4E 00 00 B0 12 FC C7 92 B3
-1C 05 FD 27 1E 42 0C 05 B0 12 0E C8 30 4D 00 C7
-06 41 43 43 45 50 54 00 3C 40 6A C8 3B 40 34 C8
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C8 92 B3 1C 05 05 24 18 42 0C 05 38 90
-0A 00 04 20 21 53 39 40 22 C8 4D 15 A2 B3 1C 05
-FD 27 B2 40 11 00 0E 05 D2 C3 02 02 30 41 B2 40
-13 00 0E 05 D2 D3 02 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C8 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 0C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 1C 05 FD 27 82 48 0E 05 30 4D 60 C8
-2D 83 92 B3 1C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C6 04 45 4D 49 54 00 30 40 8C C8 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 C8 04 45 43 48
-4F 00 B2 40 82 48 58 C8 82 43 DE 21 30 4D E0 C6
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C8 92 43
-DE 21 30 4D 9C C6 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C8 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C8 EF 3F 00 C9
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C7 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C9 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C9 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C7 02 43
-52 00 30 40 46 C9 87 12 52 C9 02 0D 0A 00 14 C9
-2A C4 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C8 82 53 22 00 82 43 B4 21
-87 12 34 C4 52 C9 C8 CB 34 C4 22 00 B6 C9 80 C9
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 C8 82 2E
-22 00 87 12 6C C9 34 C4 14 C9 C8 CB 2A C4 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C4
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C4
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C4
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C4 02 3E 52 00 0E 12 3E 4F 30 4D 70 C4 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C4 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C4 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C4
+01 21 BE 4F 00 00 3E 4F 30 4D CC C4 02 30 3D 00
+1E 83 0E 7E 30 4D FC C4 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C5 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 C5 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 C5 02 23 53 00 87 12 88 C5 C0 C5
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C5
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C4 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C5 34 C4 86 C4 D4 C4 BA C5
+92 C4 F8 C5 D4 C5 D6 C7 42 CB 82 C7 2A C4 22 C5
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C5 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C6 18 42 0C 05 2F 83 8F 4E
+00 00 B0 12 B6 C6 92 B3 1C 05 FD 27 1E 42 0C 05
+B0 12 C8 C6 30 4D A2 B3 1C 05 FD 27 B2 40 11 00
+0E 05 D2 C3 02 02 30 41 B2 40 13 00 0E 05 D2 D3
+02 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C6
+B0 12 B6 C6 12 D2 0A 18 F9 3F F0 C4 06 41 43 43
+45 50 54 00 3C 40 64 C7 3B 40 2E C7 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C7
+92 B3 1C 05 05 24 18 42 0C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 0C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 82 48 0E 05 30 4D 5A C7 2D 83 92 B3 1C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C4 04 45 4D 49
+54 00 30 40 86 C7 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C C7 04 45 43 48 4F 00 B2 40 82 48
+52 C7 82 43 DE 21 30 4D 32 C6 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C7 92 43 DE 21 30 4D 20 C6
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C7
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C7 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C5
+02 43 52 00 30 40 08 C8 87 12 1E C8 02 0D 0A 00
+D6 C7 2A C4 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C5 82 53 22 00 82 43 B4 21 87 12 14 C8
+1E C8 B0 CA 14 C8 22 00 80 C8 4C C8 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA C7 82 2E 22 00 87 12 38 C8 14 C8 D6 C7
+B0 CA 2A C4 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,301 +86,280 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C4 34 40 00 C4 30 4D A2 C5 07 3E
+00 00 35 40 0E C4 34 40 00 C4 30 4D 82 C4 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 CB 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 CB 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C5
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C8 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C5 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 CB 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 C4 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C9 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A CC B0 C5
-B6 C9 44 CC 3D 40 4C CC E2 22 5D 3E 4E CC 0A 4E
-3E 4F 3D 40 64 CC 39 27 3D 40 3E CC 1A E2 BE 21
-B3 27 AD 23 66 CC 3E 4F 3D 40 3E CC BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CF
-CD 3F B6 CB 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A C4 3A CC
-A2 CC B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C C5 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 C9 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 C9 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E C5 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E C6 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 C4 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC C6 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 C7 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE CA 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 C8 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 C8 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 CB 42 CB 80 C8 50 CB
+3D 40 58 CB CC 22 82 3E 5A CB 0A 4E 3E 4F 3D 40
+70 CB 23 27 3D 40 4A CB 1A E2 BE 21 A1 27 B5 23
+72 CB 3E 4F 3D 40 4A CB B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 CE CB 3F D2 CA
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A C4 46 CB AE CB B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 C5 04 51 55 49 54 00 82 43 08 18 31 40
 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A C4
-42 C9 92 C8 DC C8 3A CC DE C4 70 C5 52 C9 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CD 34 C4
-30 FF F2 C6 8A C5 52 C9 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CD 24 C7 D0 CC C0 C7 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C CD 86 41 42 4F 52 54
-22 00 87 12 6C C9 34 C4 2E CD C8 CB 2A C4 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D4 B0 12
-FC C7 92 C3 1C 05 38 40 A0 AA 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 1C 05 F2 23 87 12
-6A D4 34 C4 DE 21 F2 C4 B2 C8 52 C9 04 1B 5B 37
-6D 00 14 C9 54 C4 28 C7 8A CD 42 C9 52 C9 05 6C
-69 6E 65 3A 14 C9 40 C5 D2 C6 14 C9 52 C9 04 1B
-5B 30 6D 00 14 C9 12 CD 00 00 83 5B 27 5D 87 12
-B0 CD 34 C4 34 C4 C8 CB C8 CB 2A C4 08 CA 01 27
-87 12 B0 C5 B6 C9 0E CA 28 C7 BE CD 2A C4 6E CC
-CE C5 81 5C 92 42 C0 21 C4 21 30 4D 9A CD 81 5B
-82 43 BE 21 30 4D C2 CD 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C7 82 49 53 00 87 12
-C8 C5 F2 C4 28 C7 02 CE 9E CD 34 C4 E0 CD C8 CB
-2A C4 B0 CD E0 CD 2A C4 EA CD 09 49 4D 4D 45 44
+04 C8 8C C7 42 CB 82 C7 46 CB A4 C4 0C C5 1E C8
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 CC
+14 C8 30 FF A0 CA 26 C5 1E C8 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 CC 3C C6 E0 CB C2 CA 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E CC 86 41 42 4F
+52 54 22 00 87 12 38 C8 14 C8 40 CC B0 CA 2A C4
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 D1
+B0 12 B6 C6 92 C3 1C 05 38 40 A0 AA 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 1C 05 F3 23 87 12
+42 D1 14 C8 DE 21 EA C4 AC C7 1E C8 04 1B 5B 37
+6D 00 D6 C7 58 C4 40 C6 9A CC 04 C8 1E C8 05 6C
+69 6E 65 3A D6 C7 D0 C4 24 C6 D6 C7 1E C8 04 1B
+5B 30 6D 00 D6 C7 24 CC 00 00 83 5B 27 5D 87 12
+C0 CC 14 C8 14 C8 B0 CA B0 CA 2A C4 E8 C8 01 27
+87 12 42 CB 80 C8 EE C8 40 C6 CE CC 2A C4 7A CB
+32 C5 81 5C 92 42 C0 21 C4 21 30 4D AA CC 81 5B
+82 43 BE 21 30 4D D2 CC 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A CA 82 49 53 00 87 12
+BE CB EA C4 40 C6 12 CD AE CC 14 C8 F0 CC B0 CA
+2A C4 C0 CC F0 CC 2A C4 FA CC 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 C9 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 CC 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C5 B6 C9 0E CA 54 C4
-28 C7 BE CD 70 C5 28 C7 66 CE 34 C4 34 C4 C8 CB
-C8 CB 34 C4 C8 CB C8 CB 2A C4 CE CD 81 3B 82 93
-BE 21 A8 27 87 12 34 C4 2A C4 C8 CB 04 CF D0 CD
-2A C4 6C CE 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CE BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 CE 01 3A 30 12 A4 CE
-87 12 92 C9 B0 C5 B6 C9 CA CE 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CE 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C9
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CD B0 C9 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CE BA 40 86 12 FC FF E4 3F 16 CC 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CE BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CF 06 43 52 45 41 54
-45 00 B0 12 C0 CE BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CC 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CF 05 44
-45 46 45 52 30 12 12 CF 8B 3F 6E CA 05 3E 42 4F
-44 59 2E 52 30 4D 6A CF 04 43 4F 44 45 00 B0 12
-C0 CE 2A 82 82 4A C6 21 87 12 B2 CE 94 D2 66 D2
-2A C4 B8 CF 07 43 4F 44 45 4E 4E 4D 87 12 8C CE
-D0 CD C2 CF 2A C4 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D2 04 CF 2A C4 1A CD 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A D2 DA 21 D9 3F E8 CF 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE D2 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A C4 02 00 A2 52 C6 21 ED 3F 0A CE 85 48 49 32
-4C 4F 87 12 F2 C6 8C D0 C8 CB D0 CD 94 D2 66 D2
-2A C4 5C D0 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 C7 00 00 2E 53 30 4D
-9E CF 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 C7 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C9 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 CF 85 42 45 47 49 4E 30 40 F2 C6 B2 D0
-85 55 4E 54 49 4C 39 40 28 C7 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CF
-85 41 47 41 49 4E 39 40 24 C7 EF 3F 34 CF 85 57
-48 49 4C 45 87 12 78 D0 78 C4 2A C4 22 CE 86 52
-45 50 45 41 54 00 87 12 F6 D0 B8 D0 2A C4 92 D0
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C C7 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA CB 84 4C 4F 4F 50 00 39 40
-5E C7 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C7 85 2B 4C 4F
-4F 50 39 40 4C C7 E5 3F 48 D1 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E C7 00 00 BA 40 24 C7 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A D1 04 4D 4F 56 45 00 0A 4E
+C4 CB 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 CB
+80 C8 EE C8 58 C4 40 C6 CE CC 0C C5 40 C6 5C CD
+14 C8 14 C8 B0 CA B0 CA 14 C8 B0 CA B0 CA 2A C4
+DE CC 81 3B 82 93 BE 21 B5 27 87 12 14 C8 2A C4
+B0 CA FA CD E0 CC 2A C4 62 CD 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 CD 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A CD 01 3A 30 12 A0 CD 92 B3 C6 21 A2 63 C6 21
+87 12 42 CB 80 C8 C8 CD 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E C8 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C CC 90 CB 05 44 45 46 45 52
+B0 12 B8 CD BA 40 30 40 FC FF BA 40 AE CD FE FF
+E3 3F 1E CB 06 43 52 45 41 54 45 00 B0 12 B8 CD
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A CE 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E C9 05 3E 42 4F 44 59 2E 52
+30 4D 44 CE 04 43 4F 44 45 00 B0 12 B8 CD A2 82
+C6 21 87 12 D2 D0 AC D0 2A C4 84 CE 07 43 4F 44
+45 4E 4E 4D B0 12 86 CD F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 D0 FA CD 2A C4 2C CC 03 41
+53 4D B2 40 B0 D0 DA 21 E0 3F AC CE 06 45 4E 44
+41 53 4D 00 87 12 B4 CE F4 D0 2A C4 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 D0 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A C4
+02 00 A2 52 C6 21 ED 3F 1A CD 85 48 49 32 4C 4F
+87 12 A0 CA 4A CF B0 CA E0 CC D2 D0 AC D0 2A C4
+1A CF 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 C6 00 00 2E 53 30 4D 5E CE
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C C6 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 C7
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C CE 85 42 45 47 49 4E 30 40 A0 CA 70 CF 85 55
+4E 54 49 4C 39 40 40 C6 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE CE 85 41
+47 41 49 4E 39 40 3C C6 EF 3F 7A C8 85 57 48 49
+4C 45 87 12 36 CF 76 C4 2A C4 34 C8 86 52 45 50
+45 41 54 00 87 12 B4 CF 76 CF 2A C4 50 CF 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 C6 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 CA 84 4C 4F 4F 50 00 39 40 76 C6
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 C6 85 2B 4C 4F 4F 50
+39 40 64 C6 E5 3F 06 D0 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE D0
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CF
-34 C4 10 00 34 C4 00 00 3C C7 34 C4 00 00 C8 CB
-5E C7 0A D2 F2 C6 34 C4 C8 21 44 C4 F2 C4 C8 CB
-FA C4 8A CF 34 C4 CA 21 FA C4 2A C4 AE CD 05 46
-4F 52 54 48 84 12 24 D2 8E D2 C4 D5 CC D2 2E D2
-74 D0 7C D1 F8 D3 BE D2 8E D4 A8 D4 D0 D0 34 D5
-00 00 CC D3 D8 CD AC CF 00 00 F0 D0 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D2 AE DB 16 DC 62 DB
-80 DC 28 DB A4 DC 54 D8 00 00 1E DB CE DB 80 DB
-BE DB 64 D9 00 00 00 00 B2 DC 58 D2 5C D2 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C CE 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E C9 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 D1 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 D0 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CE 86 5B 54 48 45 4E 5D 00 30 4D 14 D3
-86 5B 45 4C 53 45 5D 00 87 12 34 C4 00 00 36 C5
-B0 C5 B6 C9 1C CC 44 C4 28 C7 8E D3 8A C4 8A C4
-52 C9 06 5B 54 48 45 4E 5D 00 EA D2 32 C7 5C D3
-36 C9 40 C5 54 C4 32 C7 30 D3 2A C4 8A C4 8A C4
-52 C9 06 5B 45 4C 53 45 5D 00 EA D2 32 C7 7C D3
-36 C9 40 C5 54 C4 32 C7 2E D3 2A C4 52 C9 04 5B
-49 46 5D 00 EA D2 32 C7 30 D3 24 C7 2E D3 36 C9
-52 C9 05 0D 0A 6B 6F 20 14 C9 92 C8 2A CC 24 C7
-30 D3 20 D3 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D3 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C5 B6 C9 0E CA 6C C4 2A C4 B4 D3 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C5 B6 C9 0E CA
-6C C4 64 C5 2A C4 E8 D3 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 D1 06 4D 41 52 4B 45 52 00
-B0 12 C0 CE BA 40 84 12 FC FF BA 40 E6 D3 FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A CF 34 D2 C4 D2 D8 D2 2C D4 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D2
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D4 8A D2
-C4 DC 0E D1 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D4 92 42 0C 18 70 D4 EF 3F 60 D4 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E D4 92 42
-C6 21 70 D4 30 4D 74 D4 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 D1 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C8 24 C8 B2 40 3E D5 3C D5
-B2 40 8A D2 0E 18 B2 40 C4 DC 0C 18 30 12 7E D4
-B2 40 8C C8 8A C8 B2 40 46 C9 44 C9 B2 40 A0 C7
-9E C7 B2 40 18 00 0A 18 37 40 1A C4 36 40 BC C4
-35 40 0E C4 34 40 00 C4 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 D4 04 57 41 52 4D 00 30 40 3E D5 3D 40
-74 D5 92 C3 30 01 1E 42 08 18 0E 93 12 24 F2 B0
-10 00 00 02 02 20 3E E3 1E 53 F2 D0 30 00 0A 02
-3E 90 0A 00 B1 27 3E 90 16 00 AE 2F 2E 93 7D 27
-86 2F 30 4D 52 C9 06 0D 1B 5B 37 6D 23 00 14 C9
-E2 C6 52 C9 1F 46 61 73 74 46 6F 72 74 68 20 56
-33 30 30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72
-65 6E 73 20 14 C9 34 C4 80 FF F2 C6 28 C5 D2 C6
-52 C9 0B 62 79 74 65 73 20 66 72 65 65 20 24 C7
-8A CD E2 D2 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
-B2 40 04 A5 20 01 B2 40 88 5A CC 01 B2 43 06 02
-B2 40 03 00 04 02 B2 40 FC FF 02 02 D2 D3 02 02
-F2 43 22 02 F2 D3 26 02 F2 40 A5 00 A1 01 F2 40
-10 00 A0 01 D2 43 A1 01 B2 40 00 A5 60 01 B2 40
-FF 1E 80 01 B2 40 BA 00 82 01 B2 40 E8 01 84 01
-39 40 00 01 82 43 88 01 92 D2 5E 01 08 18 38 40
-59 14 18 83 FE 23 19 83 FA 23 39 40 00 10 29 83
-89 43 00 20 FC 23 39 40 26 00 29 83 B9 40 D6 D5
-DA FF FB 23 B2 40 2C C8 E4 FF B2 40 81 00 00 05
-92 42 02 18 06 05 92 42 04 18 08 05 92 C3 00 05
-92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12 3A D5
-40 3F 38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21
-09 9A 03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A
-C4 21 30 4D 1C 15 B0 12 2A C4 B6 C9 0E CA 32 C7
-BA D6 CA CA 28 C7 BE CD DC D6 BC D6 29 4E 39 90
-86 12 02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E
-02 00 04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41
-3E 40 28 00 B0 12 A4 D6 19 42 C6 21 A2 53 C6 21
-89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53
-C4 21 B0 12 2A C4 B6 C9 CA CA 28 C7 1A D7 10 D7
-21 53 3E 90 10 00 83 2D E1 2B 1C D7 B2 41 C4 21
-DD 3F 87 12 B0 C5 82 D6 2A D7 0C 43 1B 42 C6 21
-A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53
-C4 21 B0 12 A4 D6 0E 93 03 20 3C 40 00 03 21 3C
-1E 93 03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40
-20 03 17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92
-03 20 3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03
-08 3C 3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40
-10 02 92 53 C4 21 B0 12 A4 D6 ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 21 B0 12 F8 D6 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 F8 D6 92 92 C0 21
-C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12
-F8 D6 FA 23 3C 50 10 00 B0 12 E0 D6 EF 3F 0C 43
-1B 42 C6 21 A2 53 C6 21 87 12 B0 C5 82 D6 00 D8
-FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
-C8 3F B0 12 F8 D6 E1 23 3C 50 80 00 B0 12 E0 D6
-DC 3F 1C C8 04 52 45 54 49 00 87 12 34 C4 00 13
-C8 CB 2A C4 34 C4 2C 00 22 D7 F8 D7 3E D8 2E 4E
-0E DC 09 4B A4 3F 3E D0 03 4D 4F 56 84 12 34 D8
-00 40 48 D8 05 4D 4F 56 2E 42 84 12 34 D8 40 40
-00 00 03 41 44 44 84 12 34 D8 00 50 62 D8 05 41
-44 44 2E 42 84 12 34 D8 40 50 6E D8 04 41 44 44
-43 00 84 12 34 D8 00 60 7C D8 06 41 44 44 43 2E
-42 00 84 12 34 D8 40 60 24 D8 04 53 55 42 43 00
-84 12 34 D8 00 70 9A D8 06 53 55 42 43 2E 42 00
-84 12 34 D8 40 70 A8 D8 03 53 55 42 84 12 34 D8
-00 80 B8 D8 05 53 55 42 2E 42 84 12 34 D8 40 80
-20 D0 03 43 4D 50 84 12 34 D8 00 90 D2 D8 05 43
-4D 50 2E 42 84 12 34 D8 40 90 0E D0 04 44 41 44
-44 00 84 12 34 D8 00 A0 EC D8 06 44 41 44 44 2E
-42 00 84 12 34 D8 40 A0 DE D8 03 42 49 54 84 12
-34 D8 00 B0 0A D9 05 42 49 54 2E 42 84 12 34 D8
-40 B0 16 D9 03 42 49 43 84 12 34 D8 00 C0 24 D9
-05 42 49 43 2E 42 84 12 34 D8 40 C0 30 D9 03 42
-49 53 84 12 34 D8 00 D0 3E D9 05 42 49 53 2E 42
-84 12 34 D8 40 D0 00 00 03 58 4F 52 84 12 34 D8
-00 E0 58 D9 05 58 4F 52 2E 42 84 12 34 D8 40 E0
-8A D8 03 41 4E 44 84 12 34 D8 00 F0 72 D9 05 41
-4E 44 2E 42 84 12 34 D8 40 F0 B0 C5 22 D7 90 D9
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-C4 D8 03 52 52 43 84 12 8A D9 00 10 A2 D9 05 52
-52 43 2E 42 84 12 8A D9 40 10 AE D9 04 53 57 50
-42 00 84 12 8A D9 80 10 BC D9 03 52 52 41 84 12
-8A D9 00 11 CA D9 05 52 52 41 2E 42 84 12 8A D9
-40 11 D6 D9 03 53 58 54 84 12 8A D9 80 11 00 00
-04 50 55 53 48 00 84 12 8A D9 00 12 F0 D9 06 50
-55 53 48 2E 42 00 84 12 8A D9 40 12 4A D9 04 43
-41 4C 4C 00 84 12 8A D9 80 12 1A 53 0E 4A 87 12
-E2 C6 52 C9 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 3A CD B0 C5 82 D6 3A DA 92 53 C4 21 3E 40
-2C 00 B0 12 2A C4 B6 C9 CA CA 28 C7 BE CD EE D7
-52 DA 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F
-5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F E4 D9
-04 52 52 43 4D 00 84 12 34 DA 50 00 80 DA 04 52
-52 41 4D 00 84 12 34 DA 50 01 8E DA 04 52 4C 41
-4D 00 84 12 34 DA 50 02 9C DA 04 52 52 55 4D 00
-84 12 34 DA 50 03 FE D9 05 50 55 53 48 4D 84 12
-34 DA 00 15 B8 DA 04 50 4F 50 4D 00 84 12 34 DA
-00 17 85 12 00 3C AA DA 03 53 3E 3D 85 12 00 38
-D8 DA 02 53 3C 00 85 12 00 34 C6 DA 03 30 3E 3D
-85 12 00 30 EC DA 02 30 3C 00 85 12 00 30 00 00
-02 55 3C 00 85 12 00 2C 00 DB 03 55 3E 3D 85 12
-00 28 F6 DA 03 30 3C 3E 85 12 00 24 14 DB 02 30
-3D 00 85 12 00 20 00 00 02 49 46 00 1A 42 C6 21
-8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D 0A DB 04 54
-48 45 4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53
-0A 89 0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D
-FA D8 04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C
-00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 3E DB
-05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21
-2A 83 0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 21 30 4D 7E D9 05 41
-47 41 49 4E 87 12 D2 DA 86 DB 2A C4 00 00 05 57
-48 49 4C 45 87 12 2C DB 78 C4 2A C4 E2 DA 06 52
-45 50 45 41 54 00 87 12 D2 DA 86 DB 44 DB 2A C4
-E2 DB 3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43
-00 00 CA 23 98 42 C6 21 00 00 30 4D 0E DA 03 42
-57 31 84 12 E0 DB E0 21 FE DB 03 42 57 32 84 12
-E0 DB E2 21 0A DC 03 42 57 33 84 12 E0 DB E4 21
-22 DC 3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43
-00 00 8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 84 12 20 DC E6 21
-46 DC 03 46 57 32 84 12 20 DC E8 21 52 DC 03 46
-57 33 84 12 20 DC EA 21 3E 90 00 30 07 24 3E E0
-00 04 3E B0 00 10 02 24 3E E0 00 08 30 4D 5E DC
-04 47 4F 54 4F 00 87 12 D2 DA B0 CD BE CB 2A C4
-00 00 05 3F 47 4F 54 4F 87 12 68 DC B0 CD BE CB
-2A C4 00 00 03 4A 4D 50 87 12 B0 CD B4 DB 2A C4
-92 DC 04 3F 4A 4D 50 00 87 12 68 DC B0 CD 78 C4
-86 DB 2A C4
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 C8
+CA 21 F2 C4 2A C4 84 12 7E D0 AE CF 46 D3 DE CF
+BE CC 32 CF 3A D0 5A D4 64 C8 66 D1 80 D1 8E CF
+00 D2 00 00 2C D4 E8 CC 78 CE 00 00 84 12 7E D0
+78 D9 DA D9 2C D9 4E DA F2 D8 00 00 22 D6 00 00
+E8 D8 98 D9 4A D9 88 D9 32 D7 00 00 00 00 2A DA
+AA D0 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 D0 EE D0
+F4 D0 04 D1 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 CD 09 50 57 52 5F 53 54 41
+54 45 84 12 FC D0 D0 D0 60 DA CC CF 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 D1 92 42 0C 18
+48 D1 EF 3F 38 D1 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 D1 92 42 C6 21 48 D1 30 4D 4C D1
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC CF 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 C6
+DE C6 B2 40 0A D2 08 D2 B2 40 D0 D0 0E 18 B2 40
+60 DA 0C 18 30 12 56 D1 B2 40 86 C7 84 C7 B2 40
+08 C8 06 C8 B2 40 98 C6 96 C6 B2 40 18 00 0A 18
+37 40 1A C4 36 40 92 C4 35 40 0E C4 34 40 00 C4
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A D1
+04 57 41 52 4D 00 30 40 0A D2 3D 40 40 D2 92 C3
+30 01 1E 42 08 18 0E 93 12 24 F2 B0 10 00 00 02
+02 20 3E E3 1E 53 F2 D0 30 00 0A 02 3E 90 0A 00
+B7 27 3E 90 16 00 B4 2F 2E 93 83 27 8C 2F 30 4D
+1E C8 06 0D 1B 5B 37 6D 23 00 D6 C7 34 C6 1E C8
+19 46 61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D
+2E 54 68 6F 6F 72 65 6E 73 20 D6 C7 14 C8 30 FF
+A0 CA B8 C4 24 C6 1E C8 0A 62 79 74 65 73 20 66
+72 65 65 00 3C C6 9A CC 82 CF 04 43 4F 4C 44 00
+92 B3 0A 05 FD 23 B2 40 04 A5 20 01 40 D2 B2 40
+88 5A CC 01 B2 43 06 02 B2 40 FC FF 02 02 D2 D3
+02 02 F2 D3 26 02 F2 43 22 02 F2 40 A5 00 A1 01
+F2 40 10 00 A0 01 D2 43 A1 01 B2 40 00 A5 60 01
+B2 40 FF 1E 80 01 B2 40 BA 00 82 01 B2 40 E8 01
+84 01 39 40 00 01 82 43 88 01 92 D2 5E 01 08 18
+38 40 59 14 18 83 FE 23 19 83 FA 23 39 40 00 10
+29 83 89 43 00 20 FC 23 39 40 26 00 29 83 B9 40
+9E D2 DA FF FB 23 B2 40 26 C7 E4 FF B2 40 81 00
+00 05 92 42 02 18 06 05 92 42 04 18 08 05 92 C3
+00 05 92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12
+06 D2 4B 3F 8A D2 07 43 4F 4D 50 41 52 45 0C 4E
+38 4F 3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30
+1C 83 07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43
+30 4D 1E 43 30 4D B2 CD 86 5B 54 48 45 4E 5D 00
+30 4D 78 D3 86 5B 45 4C 53 45 5D 00 87 12 14 C8
+00 00 C6 C4 42 CB 80 C8 24 CB 34 C4 40 C6 EE D3
+44 C4 1E C8 06 5B 54 48 45 4E 5D 00 4E D3 4A C6
+BE D3 F8 C7 D0 C4 58 C4 4A C6 94 D3 2A C4 44 C4
+1E C8 06 5B 45 4C 53 45 5D 00 4E D3 4A C6 DC D3
+F8 C7 D0 C4 58 C4 4A C6 92 D3 2A C4 1E C8 04 5B
+49 46 5D 00 4E D3 4A C6 94 D3 3C C6 92 D3 F8 C7
+1E C8 05 0D 0A 6B 6F 20 D6 C7 8C C7 32 CB 3C C6
+94 D3 84 D3 84 5B 49 46 5D 00 0E 93 3E 4F BE 27
+30 4D 04 D4 89 5B 44 45 46 49 4E 45 44 5D 87 12
+42 CB 80 C8 EE C8 6A C4 2A C4 14 D4 8B 5B 55 4E
+44 45 46 49 4E 45 44 5D 87 12 42 CB 80 C8 EE C8
+6A C4 00 C5 2A C4 48 D4 3D 41 B2 4E 0E 18 A2 4E
+0C 18 3E 4F 30 40 56 D1 48 D0 06 4D 41 52 4B 45
+52 00 B0 12 B8 CD BA 40 84 12 FC FF BA 40 46 D4
+FE FF 9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52
+C6 21 30 40 00 CE 1C 15 B0 12 2A C4 80 C8 EE C8
+4A C6 9C D4 AA C9 40 C6 CE CC B6 D4 9E D4 39 4E
+39 80 86 12 08 24 19 53 02 20 2E 4E 04 3C 2E 53
+19 53 01 24 2E 82 1B 17 30 41 3E 40 28 00 B0 12
+86 D4 19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 40
+29 00 1C 15 12 12 C4 21 92 53 C4 21 B0 12 2A C4
+80 C8 AA C9 40 C6 F4 D4 EA D4 21 53 3E 90 10 00
+7D 2D E1 2B F6 D4 B2 41 C4 21 DD 3F 87 12 42 CB
+74 C8 04 D5 0C 43 1B 42 C6 21 A2 53 C6 21 6A 4E
+3E 4F 7A 90 23 00 27 20 92 53 C4 21 B0 12 86 D4
+3C 40 00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24
+3C 40 20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24
+3C 40 30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24
+3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E 00 00
+3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02
+92 53 C4 21 B0 12 86 D4 ED 3F 7A 90 40 00 16 20
+3C 40 20 00 92 53 C4 21 B0 12 D2 D4 0C 20 3C 50
+10 00 3E 40 2B 00 B0 12 D2 D4 92 92 C0 21 C4 21
+02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12 D2 D4
+FA 23 3C 50 10 00 B0 12 BA D4 EF 3F 0C 43 1B 42
+C6 21 A2 53 C6 21 87 12 42 CB 74 C8 CE D5 FE 90
+26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F
+B0 12 D2 D4 E1 23 3C 50 80 00 B0 12 BA D4 DC 3F
+D6 C6 04 52 45 54 49 00 87 12 14 C8 00 13 B0 CA
+2A C4 14 C8 2C 00 FC D4 C6 D5 0C D6 09 4B 2E 4E
+0E DC A4 3F FC CE 03 4D 4F 56 84 12 02 D6 00 40
+16 D6 05 4D 4F 56 2E 42 84 12 02 D6 40 40 00 00
+03 41 44 44 84 12 02 D6 00 50 30 D6 05 41 44 44
+2E 42 84 12 02 D6 40 50 3C D6 04 41 44 44 43 00
+84 12 02 D6 00 60 4A D6 06 41 44 44 43 2E 42 00
+84 12 02 D6 40 60 F2 D5 04 53 55 42 43 00 84 12
+02 D6 00 70 68 D6 06 53 55 42 43 2E 42 00 84 12
+02 D6 40 70 76 D6 03 53 55 42 84 12 02 D6 00 80
+86 D6 05 53 55 42 2E 42 84 12 02 D6 40 80 DE CE
+03 43 4D 50 84 12 02 D6 00 90 A0 D6 05 43 4D 50
+2E 42 84 12 02 D6 40 90 CC CE 04 44 41 44 44 00
+84 12 02 D6 00 A0 BA D6 06 44 41 44 44 2E 42 00
+84 12 02 D6 40 A0 AC D6 03 42 49 54 84 12 02 D6
+00 B0 D8 D6 05 42 49 54 2E 42 84 12 02 D6 40 B0
+E4 D6 03 42 49 43 84 12 02 D6 00 C0 F2 D6 05 42
+49 43 2E 42 84 12 02 D6 40 C0 FE D6 03 42 49 53
+84 12 02 D6 00 D0 0C D7 05 42 49 53 2E 42 84 12
+02 D6 40 D0 00 00 03 58 4F 52 84 12 02 D6 00 E0
+26 D7 05 58 4F 52 2E 42 84 12 02 D6 40 E0 58 D6
+03 41 4E 44 84 12 02 D6 00 F0 40 D7 05 41 4E 44
+2E 42 84 12 02 D6 40 F0 42 CB FC D4 5E D7 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 92 D6
+03 52 52 43 84 12 58 D7 00 10 70 D7 05 52 52 43
+2E 42 84 12 58 D7 40 10 7C D7 04 53 57 50 42 00
+84 12 58 D7 80 10 8A D7 03 52 52 41 84 12 58 D7
+00 11 98 D7 05 52 52 41 2E 42 84 12 58 D7 40 11
+A4 D7 03 53 58 54 84 12 58 D7 80 11 00 00 04 50
+55 53 48 00 84 12 58 D7 00 12 BE D7 06 50 55 53
+48 2E 42 00 84 12 58 D7 40 12 18 D7 04 43 41 4C
+4C 00 84 12 58 D7 80 12 1A 53 0E 4A 87 12 34 C6
+1E C8 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+4C CC 42 CB 74 C8 08 D8 92 53 C4 21 3E 40 2C 00
+B0 12 2A C4 80 C8 AA C9 40 C6 CE CC BC D5 20 D8
+0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E
+94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F B2 D7 04 52
+52 43 4D 00 84 12 02 D8 50 00 4E D8 04 52 52 41
+4D 00 84 12 02 D8 50 01 5C D8 04 52 4C 41 4D 00
+84 12 02 D8 50 02 6A D8 04 52 52 55 4D 00 84 12
+02 D8 50 03 CC D7 05 50 55 53 48 4D 84 12 02 D8
+00 15 86 D8 04 50 4F 50 4D 00 84 12 02 D8 00 17
+78 D8 03 53 3E 3D 85 12 00 38 A2 D8 02 53 3C 00
+85 12 00 34 94 D8 03 30 3E 3D 85 12 00 30 B6 D8
+02 30 3C 00 85 12 00 30 00 00 02 55 3C 00 85 12
+00 2C CA D8 03 55 3E 3D 85 12 00 28 C0 D8 03 30
+3C 3E 85 12 00 24 DE D8 02 30 3D 00 85 12 00 20
+00 00 02 49 46 00 1A 42 C6 21 8A 4E 00 00 A2 53
+C6 21 0E 4A 30 4D D4 D8 04 54 48 45 4E 00 1A 42
+C6 21 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
+00 02 63 2F 88 DA 00 00 30 4D C8 D6 04 45 4C 53
+45 00 1A 42 C6 21 BA 40 00 3C 00 00 A2 53 C6 21
+2F 83 8F 4A 00 00 E3 3F 08 D9 05 55 4E 54 49 4C
+3A 4F 08 4E 3E 4F 19 42 C6 21 2A 83 0A 89 0A 11
+3A 90 00 FE 42 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C6 21 30 4D 4C D7 05 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 87 12
+F6 D8 76 C4 2A C4 AC D8 06 52 45 50 45 41 54 00
+87 12 7E D9 0E D9 2A C4 AA D9 3D 41 08 4E 3E 4F
+2A 48 B2 92 C4 21 CD 2F 98 42 C6 21 00 00 30 4D
+DC D7 03 42 57 31 84 12 A8 D9 00 00 C2 D9 03 42
+57 32 84 12 A8 D9 00 00 CE D9 03 42 57 33 84 12
+A8 D9 00 00 E6 D9 3D 41 1A 42 C6 21 28 4E B2 92
+C4 21 90 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
+3E 4F 30 4D 00 00 03 46 57 31 84 12 E4 D9 00 00
+06 DA 03 46 57 32 84 12 E4 D9 00 00 12 DA 03 46
+57 33 84 12 E4 D9 00 00 00 00 05 3F 47 4F 54 4F
+3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10 02 24
+3E E0 00 08 87 12 C0 CC DA CA 2A C4 1E DA 04 47
+4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
 @FFFE
-D6 D5
+9E D2
 q
index 2684308..4d775ef 100644 (file)
 @1800
-10 00 08 00 00 D6 E8 03 05 00 18 00 B4 DC 8A D2
-2C 01 7B B0 FC C7 0E C8
+10 00 08 00 00 D6 E8 03 05 00 18 00 50 DA D0 D0
+2D 01 6B B0 B6 C6 C8 C6
 @C400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C4
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C4 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C4 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C4 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C4 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C4 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C4 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C4 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C4 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C5 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C4 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C5 02 31 2D 00
-1E 83 30 4D D8 C4 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C5
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C5 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C5 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C4 01 3E 3E 8F F4 3B EB 37 0E C5 02 42 4C 00
-85 12 20 00 AC C5 04 42 41 53 45 00 85 12 DC 21
-C8 C4 05 53 54 41 54 45 85 12 BE 21 96 C5 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 C5 06 55 4D 2F
-4D 4F 44 00 30 12 62 C4 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C4 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C5
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 C5 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 C6
-02 23 53 00 87 12 32 C6 6A C6 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C6 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C5 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C5
-02 44 2E 00 87 12 D2 C5 44 C4 B0 C4 4C C5 64 C6
-BC C4 A2 C6 7E C6 14 C9 DC C8 2A C4 DC C5 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C4
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C6 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 C4
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A C6
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C6 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C6 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C5 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C7 03 4B 45 59 30 40 A0 C7
-18 42 0C 05 2F 83 8F 4E 00 00 B0 12 FC C7 92 B3
-1C 05 FD 27 1E 42 0C 05 B0 12 0E C8 30 4D 00 C7
-06 41 43 43 45 50 54 00 3C 40 6A C8 3B 40 34 C8
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C8 92 B3 1C 05 05 24 18 42 0C 05 38 90
-0A 00 04 20 21 53 39 40 22 C8 4D 15 A2 B3 1C 05
-FD 27 B2 40 11 00 0E 05 D2 C3 02 02 30 41 B2 40
-13 00 0E 05 D2 D3 02 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C8 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 0C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 1C 05 FD 27 82 48 0E 05 30 4D 60 C8
-2D 83 92 B3 1C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C6 04 45 4D 49 54 00 30 40 8C C8 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 C8 04 45 43 48
-4F 00 B2 40 82 48 58 C8 82 43 DE 21 30 4D E0 C6
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C8 92 43
-DE 21 30 4D 9C C6 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C8 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C8 EF 3F 00 C9
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C7 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C9 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C9 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C7 02 43
-52 00 30 40 46 C9 87 12 52 C9 02 0D 0A 00 14 C9
-2A C4 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C8 82 53 22 00 82 43 B4 21
-87 12 34 C4 52 C9 C8 CB 34 C4 22 00 B6 C9 80 C9
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 C8 82 2E
-22 00 87 12 6C C9 34 C4 14 C9 C8 CB 2A C4 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C4
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C4
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C4
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C4 02 3E 52 00 0E 12 3E 4F 30 4D 70 C4 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C4 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C4 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C4
+01 21 BE 4F 00 00 3E 4F 30 4D CC C4 02 30 3D 00
+1E 83 0E 7E 30 4D FC C4 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C5 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 C5 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 C5 02 23 53 00 87 12 88 C5 C0 C5
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C5
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C4 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C5 34 C4 86 C4 D4 C4 BA C5
+92 C4 F8 C5 D4 C5 D6 C7 42 CB 82 C7 2A C4 22 C5
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C5 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C6 18 42 0C 05 2F 83 8F 4E
+00 00 B0 12 B6 C6 92 B3 1C 05 FD 27 1E 42 0C 05
+B0 12 C8 C6 30 4D A2 B3 1C 05 FD 27 B2 40 11 00
+0E 05 D2 C3 02 02 30 41 B2 40 13 00 0E 05 D2 D3
+02 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C6
+B0 12 B6 C6 12 D2 0A 18 F9 3F F0 C4 06 41 43 43
+45 50 54 00 3C 40 64 C7 3B 40 2E C7 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C7
+92 B3 1C 05 05 24 18 42 0C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 0C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 82 48 0E 05 30 4D 5A C7 2D 83 92 B3 1C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C4 04 45 4D 49
+54 00 30 40 86 C7 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C C7 04 45 43 48 4F 00 B2 40 82 48
+52 C7 82 43 DE 21 30 4D 32 C6 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C7 92 43 DE 21 30 4D 20 C6
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C7
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C7 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C5
+02 43 52 00 30 40 08 C8 87 12 1E C8 02 0D 0A 00
+D6 C7 2A C4 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C5 82 53 22 00 82 43 B4 21 87 12 14 C8
+1E C8 B0 CA 14 C8 22 00 80 C8 4C C8 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA C7 82 2E 22 00 87 12 38 C8 14 C8 D6 C7
+B0 CA 2A C4 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,300 +86,279 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C4 34 40 00 C4 30 4D A2 C5 07 3E
+00 00 35 40 0E C4 34 40 00 C4 30 4D 82 C4 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 CB 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 CB 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C5
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C8 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C5 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 CB 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 C4 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C9 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A CC B0 C5
-B6 C9 44 CC 3D 40 4C CC E2 22 5D 3E 4E CC 0A 4E
-3E 4F 3D 40 64 CC 39 27 3D 40 3E CC 1A E2 BE 21
-B3 27 AD 23 66 CC 3E 4F 3D 40 3E CC BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CF
-CD 3F B6 CB 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A C4 3A CC
-A2 CC B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C C5 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 C9 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 C9 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E C5 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E C6 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 C4 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC C6 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 C7 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE CA 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 C8 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 C8 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 CB 42 CB 80 C8 50 CB
+3D 40 58 CB CC 22 82 3E 5A CB 0A 4E 3E 4F 3D 40
+70 CB 23 27 3D 40 4A CB 1A E2 BE 21 A1 27 B5 23
+72 CB 3E 4F 3D 40 4A CB B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 CE CB 3F D2 CA
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A C4 46 CB AE CB B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 C5 04 51 55 49 54 00 82 43 08 18 31 40
 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A C4
-42 C9 92 C8 DC C8 3A CC DE C4 70 C5 52 C9 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CD 34 C4
-30 FF F2 C6 8A C5 52 C9 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CD 24 C7 D0 CC C0 C7 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C CD 86 41 42 4F 52 54
-22 00 87 12 6C C9 34 C4 2E CD C8 CB 2A C4 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D4 B0 12
-FC C7 92 C3 1C 05 38 40 AA 0A 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 1C 05 F2 23 87 12
-6A D4 34 C4 DE 21 F2 C4 B2 C8 52 C9 04 1B 5B 37
-6D 00 14 C9 54 C4 28 C7 8A CD 42 C9 52 C9 05 6C
-69 6E 65 3A 14 C9 40 C5 D2 C6 14 C9 52 C9 04 1B
-5B 30 6D 00 14 C9 12 CD 00 00 83 5B 27 5D 87 12
-B0 CD 34 C4 34 C4 C8 CB C8 CB 2A C4 08 CA 01 27
-87 12 B0 C5 B6 C9 0E CA 28 C7 BE CD 2A C4 6E CC
-CE C5 81 5C 92 42 C0 21 C4 21 30 4D 9A CD 81 5B
-82 43 BE 21 30 4D C2 CD 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C7 82 49 53 00 87 12
-C8 C5 F2 C4 28 C7 02 CE 9E CD 34 C4 E0 CD C8 CB
-2A C4 B0 CD E0 CD 2A C4 EA CD 09 49 4D 4D 45 44
+04 C8 8C C7 42 CB 82 C7 46 CB A4 C4 0C C5 1E C8
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 CC
+14 C8 30 FF A0 CA 26 C5 1E C8 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 CC 3C C6 E0 CB C2 CA 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E CC 86 41 42 4F
+52 54 22 00 87 12 38 C8 14 C8 40 CC B0 CA 2A C4
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 D1
+B0 12 B6 C6 92 C3 1C 05 38 40 AA 0A 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 1C 05 F3 23 87 12
+42 D1 14 C8 DE 21 EA C4 AC C7 1E C8 04 1B 5B 37
+6D 00 D6 C7 58 C4 40 C6 9A CC 04 C8 1E C8 05 6C
+69 6E 65 3A D6 C7 D0 C4 24 C6 D6 C7 1E C8 04 1B
+5B 30 6D 00 D6 C7 24 CC 00 00 83 5B 27 5D 87 12
+C0 CC 14 C8 14 C8 B0 CA B0 CA 2A C4 E8 C8 01 27
+87 12 42 CB 80 C8 EE C8 40 C6 CE CC 2A C4 7A CB
+32 C5 81 5C 92 42 C0 21 C4 21 30 4D AA CC 81 5B
+82 43 BE 21 30 4D D2 CC 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A CA 82 49 53 00 87 12
+BE CB EA C4 40 C6 12 CD AE CC 14 C8 F0 CC B0 CA
+2A C4 C0 CC F0 CC 2A C4 FA CC 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 C9 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 CC 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C5 B6 C9 0E CA 54 C4
-28 C7 BE CD 70 C5 28 C7 66 CE 34 C4 34 C4 C8 CB
-C8 CB 34 C4 C8 CB C8 CB 2A C4 CE CD 81 3B 82 93
-BE 21 A8 27 87 12 34 C4 2A C4 C8 CB 04 CF D0 CD
-2A C4 6C CE 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CE BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 CE 01 3A 30 12 A4 CE
-87 12 92 C9 B0 C5 B6 C9 CA CE 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CE 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C9
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CD B0 C9 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CE BA 40 86 12 FC FF E4 3F 16 CC 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CE BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CF 06 43 52 45 41 54
-45 00 B0 12 C0 CE BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CC 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CF 05 44
-45 46 45 52 30 12 12 CF 8B 3F 6E CA 05 3E 42 4F
-44 59 2E 52 30 4D 6A CF 04 43 4F 44 45 00 B0 12
-C0 CE 2A 82 82 4A C6 21 87 12 B2 CE 94 D2 66 D2
-2A C4 B8 CF 07 43 4F 44 45 4E 4E 4D 87 12 8C CE
-D0 CD C2 CF 2A C4 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D2 04 CF 2A C4 1A CD 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A D2 DA 21 D9 3F E8 CF 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE D2 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A C4 02 00 A2 52 C6 21 ED 3F 0A CE 85 48 49 32
-4C 4F 87 12 F2 C6 8C D0 C8 CB D0 CD 94 D2 66 D2
-2A C4 5C D0 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 C7 00 00 2E 53 30 4D
-9E CF 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 C7 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C9 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 CF 85 42 45 47 49 4E 30 40 F2 C6 B2 D0
-85 55 4E 54 49 4C 39 40 28 C7 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CF
-85 41 47 41 49 4E 39 40 24 C7 EF 3F 34 CF 85 57
-48 49 4C 45 87 12 78 D0 78 C4 2A C4 22 CE 86 52
-45 50 45 41 54 00 87 12 F6 D0 B8 D0 2A C4 92 D0
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C C7 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA CB 84 4C 4F 4F 50 00 39 40
-5E C7 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C7 85 2B 4C 4F
-4F 50 39 40 4C C7 E5 3F 48 D1 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E C7 00 00 BA 40 24 C7 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A D1 04 4D 4F 56 45 00 0A 4E
+C4 CB 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 CB
+80 C8 EE C8 58 C4 40 C6 CE CC 0C C5 40 C6 5C CD
+14 C8 14 C8 B0 CA B0 CA 14 C8 B0 CA B0 CA 2A C4
+DE CC 81 3B 82 93 BE 21 B5 27 87 12 14 C8 2A C4
+B0 CA FA CD E0 CC 2A C4 62 CD 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 CD 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A CD 01 3A 30 12 A0 CD 92 B3 C6 21 A2 63 C6 21
+87 12 42 CB 80 C8 C8 CD 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E C8 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C CC 90 CB 05 44 45 46 45 52
+B0 12 B8 CD BA 40 30 40 FC FF BA 40 AE CD FE FF
+E3 3F 1E CB 06 43 52 45 41 54 45 00 B0 12 B8 CD
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A CE 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E C9 05 3E 42 4F 44 59 2E 52
+30 4D 44 CE 04 43 4F 44 45 00 B0 12 B8 CD A2 82
+C6 21 87 12 D2 D0 AC D0 2A C4 84 CE 07 43 4F 44
+45 4E 4E 4D B0 12 86 CD F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 D0 FA CD 2A C4 2C CC 03 41
+53 4D B2 40 B0 D0 DA 21 E0 3F AC CE 06 45 4E 44
+41 53 4D 00 87 12 B4 CE F4 D0 2A C4 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 D0 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A C4
+02 00 A2 52 C6 21 ED 3F 1A CD 85 48 49 32 4C 4F
+87 12 A0 CA 4A CF B0 CA E0 CC D2 D0 AC D0 2A C4
+1A CF 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 C6 00 00 2E 53 30 4D 5E CE
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C C6 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 C7
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C CE 85 42 45 47 49 4E 30 40 A0 CA 70 CF 85 55
+4E 54 49 4C 39 40 40 C6 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE CE 85 41
+47 41 49 4E 39 40 3C C6 EF 3F 7A C8 85 57 48 49
+4C 45 87 12 36 CF 76 C4 2A C4 34 C8 86 52 45 50
+45 41 54 00 87 12 B4 CF 76 CF 2A C4 50 CF 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 C6 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 CA 84 4C 4F 4F 50 00 39 40 76 C6
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 C6 85 2B 4C 4F 4F 50
+39 40 64 C6 E5 3F 06 D0 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE D0
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CF
-34 C4 10 00 34 C4 00 00 3C C7 34 C4 00 00 C8 CB
-5E C7 0A D2 F2 C6 34 C4 C8 21 44 C4 F2 C4 C8 CB
-FA C4 8A CF 34 C4 CA 21 FA C4 2A C4 AE CD 05 46
-4F 52 54 48 84 12 24 D2 8E D2 C4 D5 CC D2 2E D2
-74 D0 7C D1 F8 D3 BE D2 8E D4 A8 D4 D0 D0 34 D5
-00 00 CC D3 D8 CD AC CF 00 00 F0 D0 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D2 9E DB 06 DC 52 DB
-70 DC 18 DB 94 DC 44 D8 00 00 0E DB BE DB 70 DB
-AE DB 54 D9 00 00 00 00 A2 DC 58 D2 5C D2 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C CE 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E C9 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 D1 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 D0 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CE 86 5B 54 48 45 4E 5D 00 30 4D 14 D3
-86 5B 45 4C 53 45 5D 00 87 12 34 C4 00 00 36 C5
-B0 C5 B6 C9 1C CC 44 C4 28 C7 8E D3 8A C4 8A C4
-52 C9 06 5B 54 48 45 4E 5D 00 EA D2 32 C7 5C D3
-36 C9 40 C5 54 C4 32 C7 30 D3 2A C4 8A C4 8A C4
-52 C9 06 5B 45 4C 53 45 5D 00 EA D2 32 C7 7C D3
-36 C9 40 C5 54 C4 32 C7 2E D3 2A C4 52 C9 04 5B
-49 46 5D 00 EA D2 32 C7 30 D3 24 C7 2E D3 36 C9
-52 C9 05 0D 0A 6B 6F 20 14 C9 92 C8 2A CC 24 C7
-30 D3 20 D3 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D3 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C5 B6 C9 0E CA 6C C4 2A C4 B4 D3 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C5 B6 C9 0E CA
-6C C4 64 C5 2A C4 E8 D3 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 D1 06 4D 41 52 4B 45 52 00
-B0 12 C0 CE BA 40 84 12 FC FF BA 40 E6 D3 FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A CF 34 D2 C4 D2 D8 D2 2C D4 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D2
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D4 8A D2
-B4 DC 0E D1 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D4 92 42 0C 18 70 D4 EF 3F 60 D4 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E D4 92 42
-C6 21 70 D4 30 4D 74 D4 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 D1 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C8 24 C8 B2 40 3E D5 3C D5
-B2 40 8A D2 0E 18 B2 40 B4 DC 0C 18 30 12 7E D4
-B2 40 8C C8 8A C8 B2 40 46 C9 44 C9 B2 40 A0 C7
-9E C7 B2 40 18 00 0A 18 37 40 1A C4 36 40 BC C4
-35 40 0E C4 34 40 00 C4 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 D4 04 57 41 52 4D 00 30 40 3E D5 3D 40
-74 D5 92 C3 30 01 1E 42 08 18 0E 93 12 24 F2 B0
-10 00 00 02 02 20 3E E3 1E 53 F2 D0 30 00 0A 02
-3E 90 0A 00 B1 27 3E 90 16 00 AE 2F 2E 93 7D 27
-86 2F 30 4D 52 C9 06 0D 1B 5B 37 6D 23 00 14 C9
-E2 C6 52 C9 1F 46 61 73 74 46 6F 72 74 68 20 56
-33 30 30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72
-65 6E 73 20 14 C9 34 C4 80 FF F2 C6 28 C5 D2 C6
-52 C9 0B 62 79 74 65 73 20 66 72 65 65 20 24 C7
-8A CD E2 D2 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
-B2 40 04 A5 20 01 B2 40 88 5A CC 01 B2 43 06 02
-B2 40 03 00 04 02 B2 40 FC FF 02 02 D2 D3 02 02
-F2 43 22 02 F2 D3 26 02 B2 40 00 A5 60 01 B2 40
-FF 1E 80 01 B2 40 B0 00 82 01 B2 40 1E 00 84 01
-39 40 10 00 82 43 88 01 92 D2 5E 01 08 18 38 40
-59 14 18 83 FE 23 19 83 FA 23 39 40 00 10 29 83
-89 43 00 20 FC 23 39 40 26 00 29 83 B9 40 D6 D5
-DA FF FB 23 B2 40 2C C8 E4 FF B2 40 81 00 00 05
-92 42 02 18 06 05 92 42 04 18 08 05 92 C3 00 05
-92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12 3A D5
-48 3F 38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21
-09 9A 03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A
-C4 21 30 4D 1C 15 B0 12 2A C4 B6 C9 0E CA 32 C7
-AA D6 CA CA 28 C7 BE CD CC D6 AC D6 29 4E 39 90
-86 12 02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E
-02 00 04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41
-3E 40 28 00 B0 12 94 D6 19 42 C6 21 A2 53 C6 21
-89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53
-C4 21 B0 12 2A C4 B6 C9 CA CA 28 C7 0A D7 00 D7
-21 53 3E 90 10 00 83 2D E1 2B 0C D7 B2 41 C4 21
-DD 3F 87 12 B0 C5 72 D6 1A D7 0C 43 1B 42 C6 21
-A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53
-C4 21 B0 12 94 D6 0E 93 03 20 3C 40 00 03 21 3C
-1E 93 03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40
-20 03 17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92
-03 20 3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03
-08 3C 3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40
-10 02 92 53 C4 21 B0 12 94 D6 ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 21 B0 12 E8 D6 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 E8 D6 92 92 C0 21
-C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12
-E8 D6 FA 23 3C 50 10 00 B0 12 D0 D6 EF 3F 0C 43
-1B 42 C6 21 A2 53 C6 21 87 12 B0 C5 72 D6 F0 D7
-FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
-C8 3F B0 12 E8 D6 E1 23 3C 50 80 00 B0 12 D0 D6
-DC 3F 1C C8 04 52 45 54 49 00 87 12 34 C4 00 13
-C8 CB 2A C4 34 C4 2C 00 12 D7 E8 D7 2E D8 2E 4E
-0E DC 09 4B A4 3F 3E D0 03 4D 4F 56 84 12 24 D8
-00 40 38 D8 05 4D 4F 56 2E 42 84 12 24 D8 40 40
-00 00 03 41 44 44 84 12 24 D8 00 50 52 D8 05 41
-44 44 2E 42 84 12 24 D8 40 50 5E D8 04 41 44 44
-43 00 84 12 24 D8 00 60 6C D8 06 41 44 44 43 2E
-42 00 84 12 24 D8 40 60 14 D8 04 53 55 42 43 00
-84 12 24 D8 00 70 8A D8 06 53 55 42 43 2E 42 00
-84 12 24 D8 40 70 98 D8 03 53 55 42 84 12 24 D8
-00 80 A8 D8 05 53 55 42 2E 42 84 12 24 D8 40 80
-20 D0 03 43 4D 50 84 12 24 D8 00 90 C2 D8 05 43
-4D 50 2E 42 84 12 24 D8 40 90 0E D0 04 44 41 44
-44 00 84 12 24 D8 00 A0 DC D8 06 44 41 44 44 2E
-42 00 84 12 24 D8 40 A0 CE D8 03 42 49 54 84 12
-24 D8 00 B0 FA D8 05 42 49 54 2E 42 84 12 24 D8
-40 B0 06 D9 03 42 49 43 84 12 24 D8 00 C0 14 D9
-05 42 49 43 2E 42 84 12 24 D8 40 C0 20 D9 03 42
-49 53 84 12 24 D8 00 D0 2E D9 05 42 49 53 2E 42
-84 12 24 D8 40 D0 00 00 03 58 4F 52 84 12 24 D8
-00 E0 48 D9 05 58 4F 52 2E 42 84 12 24 D8 40 E0
-7A D8 03 41 4E 44 84 12 24 D8 00 F0 62 D9 05 41
-4E 44 2E 42 84 12 24 D8 40 F0 B0 C5 12 D7 80 D9
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-B4 D8 03 52 52 43 84 12 7A D9 00 10 92 D9 05 52
-52 43 2E 42 84 12 7A D9 40 10 9E D9 04 53 57 50
-42 00 84 12 7A D9 80 10 AC D9 03 52 52 41 84 12
-7A D9 00 11 BA D9 05 52 52 41 2E 42 84 12 7A D9
-40 11 C6 D9 03 53 58 54 84 12 7A D9 80 11 00 00
-04 50 55 53 48 00 84 12 7A D9 00 12 E0 D9 06 50
-55 53 48 2E 42 00 84 12 7A D9 40 12 3A D9 04 43
-41 4C 4C 00 84 12 7A D9 80 12 1A 53 0E 4A 87 12
-E2 C6 52 C9 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 3A CD B0 C5 72 D6 2A DA 92 53 C4 21 3E 40
-2C 00 B0 12 2A C4 B6 C9 CA CA 28 C7 BE CD DE D7
-42 DA 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F
-5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F D4 D9
-04 52 52 43 4D 00 84 12 24 DA 50 00 70 DA 04 52
-52 41 4D 00 84 12 24 DA 50 01 7E DA 04 52 4C 41
-4D 00 84 12 24 DA 50 02 8C DA 04 52 52 55 4D 00
-84 12 24 DA 50 03 EE D9 05 50 55 53 48 4D 84 12
-24 DA 00 15 A8 DA 04 50 4F 50 4D 00 84 12 24 DA
-00 17 85 12 00 3C 9A DA 03 53 3E 3D 85 12 00 38
-C8 DA 02 53 3C 00 85 12 00 34 B6 DA 03 30 3E 3D
-85 12 00 30 DC DA 02 30 3C 00 85 12 00 30 00 00
-02 55 3C 00 85 12 00 2C F0 DA 03 55 3E 3D 85 12
-00 28 E6 DA 03 30 3C 3E 85 12 00 24 04 DB 02 30
-3D 00 85 12 00 20 00 00 02 49 46 00 1A 42 C6 21
-8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D FA DA 04 54
-48 45 4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53
-0A 89 0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D
-EA D8 04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C
-00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 2E DB
-05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21
-2A 83 0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 21 30 4D 6E D9 05 41
-47 41 49 4E 87 12 C2 DA 76 DB 2A C4 00 00 05 57
-48 49 4C 45 87 12 1C DB 78 C4 2A C4 D2 DA 06 52
-45 50 45 41 54 00 87 12 C2 DA 76 DB 34 DB 2A C4
-D2 DB 3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43
-00 00 CA 23 98 42 C6 21 00 00 30 4D FE D9 03 42
-57 31 84 12 D0 DB E0 21 EE DB 03 42 57 32 84 12
-D0 DB E2 21 FA DB 03 42 57 33 84 12 D0 DB E4 21
-12 DC 3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43
-00 00 8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 84 12 10 DC E6 21
-36 DC 03 46 57 32 84 12 10 DC E8 21 42 DC 03 46
-57 33 84 12 10 DC EA 21 3E 90 00 30 07 24 3E E0
-00 04 3E B0 00 10 02 24 3E E0 00 08 30 4D 4E DC
-04 47 4F 54 4F 00 87 12 C2 DA B0 CD BE CB 2A C4
-00 00 05 3F 47 4F 54 4F 87 12 58 DC B0 CD BE CB
-2A C4 00 00 03 4A 4D 50 87 12 B0 CD A4 DB 2A C4
-82 DC 04 3F 4A 4D 50 00 87 12 58 DC B0 CD 78 C4
-76 DB 2A C4
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 C8
+CA 21 F2 C4 2A C4 84 12 7E D0 AE CF 36 D3 DE CF
+BE CC 32 CF 3A D0 4A D4 64 C8 66 D1 80 D1 8E CF
+00 D2 00 00 1C D4 E8 CC 78 CE 00 00 84 12 7E D0
+68 D9 CA D9 1C D9 3E DA E2 D8 00 00 12 D6 00 00
+D8 D8 88 D9 3A D9 78 D9 22 D7 00 00 00 00 1A DA
+AA D0 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 D0 EE D0
+F4 D0 04 D1 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 CD 09 50 57 52 5F 53 54 41
+54 45 84 12 FC D0 D0 D0 50 DA CC CF 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 D1 92 42 0C 18
+48 D1 EF 3F 38 D1 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 D1 92 42 C6 21 48 D1 30 4D 4C D1
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC CF 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 C6
+DE C6 B2 40 0A D2 08 D2 B2 40 D0 D0 0E 18 B2 40
+50 DA 0C 18 30 12 56 D1 B2 40 86 C7 84 C7 B2 40
+08 C8 06 C8 B2 40 98 C6 96 C6 B2 40 18 00 0A 18
+37 40 1A C4 36 40 92 C4 35 40 0E C4 34 40 00 C4
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A D1
+04 57 41 52 4D 00 30 40 0A D2 3D 40 40 D2 92 C3
+30 01 1E 42 08 18 0E 93 12 24 F2 B0 10 00 00 02
+02 20 3E E3 1E 53 F2 D0 30 00 0A 02 3E 90 0A 00
+B7 27 3E 90 16 00 B4 2F 2E 93 83 27 8C 2F 30 4D
+1E C8 06 0D 1B 5B 37 6D 23 00 D6 C7 34 C6 1E C8
+19 46 61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D
+2E 54 68 6F 6F 72 65 6E 73 20 D6 C7 14 C8 30 FF
+A0 CA B8 C4 24 C6 1E C8 0A 62 79 74 65 73 20 66
+72 65 65 00 3C C6 9A CC 82 CF 04 43 4F 4C 44 00
+92 B3 0A 05 FD 23 B2 40 04 A5 20 01 40 D2 B2 40
+88 5A CC 01 B2 43 06 02 B2 40 FC FF 02 02 D2 D3
+02 02 F2 D3 26 02 F2 43 22 02 B2 40 00 A5 60 01
+B2 40 FF 1E 80 01 B2 40 B0 00 82 01 B2 40 1E 00
+84 01 39 40 10 00 82 43 88 01 92 D2 5E 01 08 18
+38 40 59 14 18 83 FE 23 19 83 FA 23 39 40 00 10
+29 83 89 43 00 20 FC 23 39 40 26 00 29 83 B9 40
+9E D2 DA FF FB 23 B2 40 26 C7 E4 FF B2 40 81 00
+00 05 92 42 02 18 06 05 92 42 04 18 08 05 92 C3
+00 05 92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12
+06 D2 53 3F 8A D2 07 43 4F 4D 50 41 52 45 0C 4E
+38 4F 3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30
+1C 83 07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43
+30 4D 1E 43 30 4D B2 CD 86 5B 54 48 45 4E 5D 00
+30 4D 68 D3 86 5B 45 4C 53 45 5D 00 87 12 14 C8
+00 00 C6 C4 42 CB 80 C8 24 CB 34 C4 40 C6 DE D3
+44 C4 1E C8 06 5B 54 48 45 4E 5D 00 3E D3 4A C6
+AE D3 F8 C7 D0 C4 58 C4 4A C6 84 D3 2A C4 44 C4
+1E C8 06 5B 45 4C 53 45 5D 00 3E D3 4A C6 CC D3
+F8 C7 D0 C4 58 C4 4A C6 82 D3 2A C4 1E C8 04 5B
+49 46 5D 00 3E D3 4A C6 84 D3 3C C6 82 D3 F8 C7
+1E C8 05 0D 0A 6B 6F 20 D6 C7 8C C7 32 CB 3C C6
+84 D3 74 D3 84 5B 49 46 5D 00 0E 93 3E 4F BE 27
+30 4D F4 D3 89 5B 44 45 46 49 4E 45 44 5D 87 12
+42 CB 80 C8 EE C8 6A C4 2A C4 04 D4 8B 5B 55 4E
+44 45 46 49 4E 45 44 5D 87 12 42 CB 80 C8 EE C8
+6A C4 00 C5 2A C4 38 D4 3D 41 B2 4E 0E 18 A2 4E
+0C 18 3E 4F 30 40 56 D1 48 D0 06 4D 41 52 4B 45
+52 00 B0 12 B8 CD BA 40 84 12 FC FF BA 40 36 D4
+FE FF 9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52
+C6 21 30 40 00 CE 1C 15 B0 12 2A C4 80 C8 EE C8
+4A C6 8C D4 AA C9 40 C6 CE CC A6 D4 8E D4 39 4E
+39 80 86 12 08 24 19 53 02 20 2E 4E 04 3C 2E 53
+19 53 01 24 2E 82 1B 17 30 41 3E 40 28 00 B0 12
+76 D4 19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 40
+29 00 1C 15 12 12 C4 21 92 53 C4 21 B0 12 2A C4
+80 C8 AA C9 40 C6 E4 D4 DA D4 21 53 3E 90 10 00
+7D 2D E1 2B E6 D4 B2 41 C4 21 DD 3F 87 12 42 CB
+74 C8 F4 D4 0C 43 1B 42 C6 21 A2 53 C6 21 6A 4E
+3E 4F 7A 90 23 00 27 20 92 53 C4 21 B0 12 76 D4
+3C 40 00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24
+3C 40 20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24
+3C 40 30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24
+3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E 00 00
+3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02
+92 53 C4 21 B0 12 76 D4 ED 3F 7A 90 40 00 16 20
+3C 40 20 00 92 53 C4 21 B0 12 C2 D4 0C 20 3C 50
+10 00 3E 40 2B 00 B0 12 C2 D4 92 92 C0 21 C4 21
+02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12 C2 D4
+FA 23 3C 50 10 00 B0 12 AA D4 EF 3F 0C 43 1B 42
+C6 21 A2 53 C6 21 87 12 42 CB 74 C8 BE D5 FE 90
+26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F
+B0 12 C2 D4 E1 23 3C 50 80 00 B0 12 AA D4 DC 3F
+D6 C6 04 52 45 54 49 00 87 12 14 C8 00 13 B0 CA
+2A C4 14 C8 2C 00 EC D4 B6 D5 FC D5 09 4B 2E 4E
+0E DC A4 3F FC CE 03 4D 4F 56 84 12 F2 D5 00 40
+06 D6 05 4D 4F 56 2E 42 84 12 F2 D5 40 40 00 00
+03 41 44 44 84 12 F2 D5 00 50 20 D6 05 41 44 44
+2E 42 84 12 F2 D5 40 50 2C D6 04 41 44 44 43 00
+84 12 F2 D5 00 60 3A D6 06 41 44 44 43 2E 42 00
+84 12 F2 D5 40 60 E2 D5 04 53 55 42 43 00 84 12
+F2 D5 00 70 58 D6 06 53 55 42 43 2E 42 00 84 12
+F2 D5 40 70 66 D6 03 53 55 42 84 12 F2 D5 00 80
+76 D6 05 53 55 42 2E 42 84 12 F2 D5 40 80 DE CE
+03 43 4D 50 84 12 F2 D5 00 90 90 D6 05 43 4D 50
+2E 42 84 12 F2 D5 40 90 CC CE 04 44 41 44 44 00
+84 12 F2 D5 00 A0 AA D6 06 44 41 44 44 2E 42 00
+84 12 F2 D5 40 A0 9C D6 03 42 49 54 84 12 F2 D5
+00 B0 C8 D6 05 42 49 54 2E 42 84 12 F2 D5 40 B0
+D4 D6 03 42 49 43 84 12 F2 D5 00 C0 E2 D6 05 42
+49 43 2E 42 84 12 F2 D5 40 C0 EE D6 03 42 49 53
+84 12 F2 D5 00 D0 FC D6 05 42 49 53 2E 42 84 12
+F2 D5 40 D0 00 00 03 58 4F 52 84 12 F2 D5 00 E0
+16 D7 05 58 4F 52 2E 42 84 12 F2 D5 40 E0 48 D6
+03 41 4E 44 84 12 F2 D5 00 F0 30 D7 05 41 4E 44
+2E 42 84 12 F2 D5 40 F0 42 CB EC D4 4E D7 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 82 D6
+03 52 52 43 84 12 48 D7 00 10 60 D7 05 52 52 43
+2E 42 84 12 48 D7 40 10 6C D7 04 53 57 50 42 00
+84 12 48 D7 80 10 7A D7 03 52 52 41 84 12 48 D7
+00 11 88 D7 05 52 52 41 2E 42 84 12 48 D7 40 11
+94 D7 03 53 58 54 84 12 48 D7 80 11 00 00 04 50
+55 53 48 00 84 12 48 D7 00 12 AE D7 06 50 55 53
+48 2E 42 00 84 12 48 D7 40 12 08 D7 04 43 41 4C
+4C 00 84 12 48 D7 80 12 1A 53 0E 4A 87 12 34 C6
+1E C8 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+4C CC 42 CB 74 C8 F8 D7 92 53 C4 21 3E 40 2C 00
+B0 12 2A C4 80 C8 AA C9 40 C6 CE CC AC D5 10 D8
+0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E
+94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F A2 D7 04 52
+52 43 4D 00 84 12 F2 D7 50 00 3E D8 04 52 52 41
+4D 00 84 12 F2 D7 50 01 4C D8 04 52 4C 41 4D 00
+84 12 F2 D7 50 02 5A D8 04 52 52 55 4D 00 84 12
+F2 D7 50 03 BC D7 05 50 55 53 48 4D 84 12 F2 D7
+00 15 76 D8 04 50 4F 50 4D 00 84 12 F2 D7 00 17
+68 D8 03 53 3E 3D 85 12 00 38 92 D8 02 53 3C 00
+85 12 00 34 84 D8 03 30 3E 3D 85 12 00 30 A6 D8
+02 30 3C 00 85 12 00 30 00 00 02 55 3C 00 85 12
+00 2C BA D8 03 55 3E 3D 85 12 00 28 B0 D8 03 30
+3C 3E 85 12 00 24 CE D8 02 30 3D 00 85 12 00 20
+00 00 02 49 46 00 1A 42 C6 21 8A 4E 00 00 A2 53
+C6 21 0E 4A 30 4D C4 D8 04 54 48 45 4E 00 1A 42
+C6 21 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
+00 02 63 2F 88 DA 00 00 30 4D B8 D6 04 45 4C 53
+45 00 1A 42 C6 21 BA 40 00 3C 00 00 A2 53 C6 21
+2F 83 8F 4A 00 00 E3 3F F8 D8 05 55 4E 54 49 4C
+3A 4F 08 4E 3E 4F 19 42 C6 21 2A 83 0A 89 0A 11
+3A 90 00 FE 42 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C6 21 30 4D 3C D7 05 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 87 12
+E6 D8 76 C4 2A C4 9C D8 06 52 45 50 45 41 54 00
+87 12 6E D9 FE D8 2A C4 9A D9 3D 41 08 4E 3E 4F
+2A 48 B2 92 C4 21 CD 2F 98 42 C6 21 00 00 30 4D
+CC D7 03 42 57 31 84 12 98 D9 00 00 B2 D9 03 42
+57 32 84 12 98 D9 00 00 BE D9 03 42 57 33 84 12
+98 D9 00 00 D6 D9 3D 41 1A 42 C6 21 28 4E B2 92
+C4 21 90 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
+3E 4F 30 4D 00 00 03 46 57 31 84 12 D4 D9 00 00
+F6 D9 03 46 57 32 84 12 D4 D9 00 00 02 DA 03 46
+57 33 84 12 D4 D9 00 00 00 00 05 3F 47 4F 54 4F
+3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10 02 24
+3E E0 00 08 87 12 C0 CC DA CA 2A C4 0E DA 04 47
+4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
 @FFFE
-D6 D5
+9E D2
 q
diff --git a/binaries/MSP_EXP430FR2433_4MHz.txt b/binaries/MSP_EXP430FR2433_4MHz.txt
deleted file mode 100644 (file)
index f0cd118..0000000
+++ /dev/null
@@ -1,403 +0,0 @@
-@1800
-10 00 02 00 21 BB A0 0F 05 00 18 00 B4 DC 8A D2
-2C 01 7B B0 FC C7 0E C8
-@C400
-2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
-8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C4
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C4 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C4 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C4 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C4 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C4 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C4 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C4 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C4 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C5 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C4 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C5 02 31 2D 00
-1E 83 30 4D D8 C4 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C5
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C5 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C5 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C4 01 3E 3E 8F F4 3B EB 37 0E C5 02 42 4C 00
-85 12 20 00 AC C5 04 42 41 53 45 00 85 12 DC 21
-C8 C4 05 53 54 41 54 45 85 12 BE 21 96 C5 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 C5 06 55 4D 2F
-4D 4F 44 00 30 12 62 C4 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C4 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C5
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 C5 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 C6
-02 23 53 00 87 12 32 C6 6A C6 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C6 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C5 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C5
-02 44 2E 00 87 12 D2 C5 44 C4 B0 C4 4C C5 64 C6
-BC C4 A2 C6 7E C6 14 C9 DC C8 2A C4 DC C5 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C4
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C6 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 C4
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A C6
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C6 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C6 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C5 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C7 03 4B 45 59 30 40 A0 C7
-18 42 0C 05 2F 83 8F 4E 00 00 B0 12 FC C7 92 B3
-1C 05 FD 27 1E 42 0C 05 B0 12 0E C8 30 4D 00 C7
-06 41 43 43 45 50 54 00 3C 40 6A C8 3B 40 34 C8
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C8 92 B3 1C 05 05 24 18 42 0C 05 38 90
-0A 00 04 20 21 53 39 40 22 C8 4D 15 A2 B3 1C 05
-FD 27 B2 40 11 00 0E 05 D2 C3 02 02 30 41 B2 40
-13 00 0E 05 D2 D3 02 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C8 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 0C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 1C 05 FD 27 82 48 0E 05 30 4D 60 C8
-2D 83 92 B3 1C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C6 04 45 4D 49 54 00 30 40 8C C8 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 C8 04 45 43 48
-4F 00 B2 40 82 48 58 C8 82 43 DE 21 30 4D E0 C6
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C8 92 43
-DE 21 30 4D 9C C6 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C8 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C8 EF 3F 00 C9
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C7 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C9 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C9 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C7 02 43
-52 00 30 40 46 C9 87 12 52 C9 02 0D 0A 00 14 C9
-2A C4 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C8 82 53 22 00 82 43 B4 21
-87 12 34 C4 52 C9 C8 CB 34 C4 22 00 B6 C9 80 C9
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 C8 82 2E
-22 00 87 12 6C C9 34 C4 14 C9 C8 CB 2A C4 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
-60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
-18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
-F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
-CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
-0C 4E 65 4C 74 40 80 00 3B 40 CA 21 3E 4B 0E 93
-1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
-FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
-0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
-09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C4 34 40 00 C4 30 4D A2 C5 07 3E
-4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
-DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
-07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
-D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
-E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 CB 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 CB 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C5
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C8 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C5 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 CB 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 C4 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C9 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A CC B0 C5
-B6 C9 44 CC 3D 40 4C CC E2 22 5D 3E 4E CC 0A 4E
-3E 4F 3D 40 64 CC 39 27 3D 40 3E CC 1A E2 BE 21
-B3 27 AD 23 66 CC 3E 4F 3D 40 3E CC BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CF
-CD 3F B6 CB 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A C4 3A CC
-A2 CC B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C C5 04 51 55 49 54 00 82 43 08 18 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A C4
-42 C9 92 C8 DC C8 3A CC DE C4 70 C5 52 C9 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CD 34 C4
-30 FF F2 C6 8A C5 52 C9 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CD 24 C7 D0 CC C0 C7 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C CD 86 41 42 4F 52 54
-22 00 87 12 6C C9 34 C4 2E CD C8 CB 2A C4 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D4 B0 12
-FC C7 92 C3 1C 05 38 40 A8 2A 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 1C 05 F2 23 87 12
-6A D4 34 C4 DE 21 F2 C4 B2 C8 52 C9 04 1B 5B 37
-6D 00 14 C9 54 C4 28 C7 8A CD 42 C9 52 C9 05 6C
-69 6E 65 3A 14 C9 40 C5 D2 C6 14 C9 52 C9 04 1B
-5B 30 6D 00 14 C9 12 CD 00 00 83 5B 27 5D 87 12
-B0 CD 34 C4 34 C4 C8 CB C8 CB 2A C4 08 CA 01 27
-87 12 B0 C5 B6 C9 0E CA 28 C7 BE CD 2A C4 6E CC
-CE C5 81 5C 92 42 C0 21 C4 21 30 4D 9A CD 81 5B
-82 43 BE 21 30 4D C2 CD 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C7 82 49 53 00 87 12
-C8 C5 F2 C4 28 C7 02 CE 9E CD 34 C4 E0 CD C8 CB
-2A C4 B0 CD E0 CD 2A C4 EA CD 09 49 4D 4D 45 44
-49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 C9 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 CC 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C5 B6 C9 0E CA 54 C4
-28 C7 BE CD 70 C5 28 C7 66 CE 34 C4 34 C4 C8 CB
-C8 CB 34 C4 C8 CB C8 CB 2A C4 CE CD 81 3B 82 93
-BE 21 A8 27 87 12 34 C4 2A C4 C8 CB 04 CF D0 CD
-2A C4 6C CE 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CE BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 CE 01 3A 30 12 A4 CE
-87 12 92 C9 B0 C5 B6 C9 CA CE 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CE 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C9
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CD B0 C9 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CE BA 40 86 12 FC FF E4 3F 16 CC 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CE BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CF 06 43 52 45 41 54
-45 00 B0 12 C0 CE BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CC 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CF 05 44
-45 46 45 52 30 12 12 CF 8B 3F 6E CA 05 3E 42 4F
-44 59 2E 52 30 4D 6A CF 04 43 4F 44 45 00 B0 12
-C0 CE 2A 82 82 4A C6 21 87 12 B2 CE 94 D2 66 D2
-2A C4 B8 CF 07 43 4F 44 45 4E 4E 4D 87 12 8C CE
-D0 CD C2 CF 2A C4 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D2 04 CF 2A C4 1A CD 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A D2 DA 21 D9 3F E8 CF 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE D2 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A C4 02 00 A2 52 C6 21 ED 3F 0A CE 85 48 49 32
-4C 4F 87 12 F2 C6 8C D0 C8 CB D0 CD 94 D2 66 D2
-2A C4 5C D0 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 C7 00 00 2E 53 30 4D
-9E CF 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 C7 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C9 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 CF 85 42 45 47 49 4E 30 40 F2 C6 B2 D0
-85 55 4E 54 49 4C 39 40 28 C7 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CF
-85 41 47 41 49 4E 39 40 24 C7 EF 3F 34 CF 85 57
-48 49 4C 45 87 12 78 D0 78 C4 2A C4 22 CE 86 52
-45 50 45 41 54 00 87 12 F6 D0 B8 D0 2A C4 92 D0
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C C7 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA CB 84 4C 4F 4F 50 00 39 40
-5E C7 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C7 85 2B 4C 4F
-4F 50 39 40 4C C7 E5 3F 48 D1 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E C7 00 00 BA 40 24 C7 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A D1 04 4D 4F 56 45 00 0A 4E
-38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
-F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE D0
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CF
-34 C4 10 00 34 C4 00 00 3C C7 34 C4 00 00 C8 CB
-5E C7 0A D2 F2 C6 34 C4 C8 21 44 C4 F2 C4 C8 CB
-FA C4 8A CF 34 C4 CA 21 FA C4 2A C4 AE CD 05 46
-4F 52 54 48 84 12 24 D2 8E D2 C4 D5 CC D2 2E D2
-74 D0 7C D1 F8 D3 BE D2 8E D4 A8 D4 D0 D0 34 D5
-00 00 CC D3 D8 CD AC CF 00 00 F0 D0 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D2 9E DB 06 DC 52 DB
-70 DC 18 DB 94 DC 44 D8 00 00 0E DB BE DB 70 DB
-AE DB 54 D9 00 00 00 00 A2 DC 58 D2 5C D2 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C CE 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E C9 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 D1 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 D0 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CE 86 5B 54 48 45 4E 5D 00 30 4D 14 D3
-86 5B 45 4C 53 45 5D 00 87 12 34 C4 00 00 36 C5
-B0 C5 B6 C9 1C CC 44 C4 28 C7 8E D3 8A C4 8A C4
-52 C9 06 5B 54 48 45 4E 5D 00 EA D2 32 C7 5C D3
-36 C9 40 C5 54 C4 32 C7 30 D3 2A C4 8A C4 8A C4
-52 C9 06 5B 45 4C 53 45 5D 00 EA D2 32 C7 7C D3
-36 C9 40 C5 54 C4 32 C7 2E D3 2A C4 52 C9 04 5B
-49 46 5D 00 EA D2 32 C7 30 D3 24 C7 2E D3 36 C9
-52 C9 05 0D 0A 6B 6F 20 14 C9 92 C8 2A CC 24 C7
-30 D3 20 D3 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D3 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C5 B6 C9 0E CA 6C C4 2A C4 B4 D3 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C5 B6 C9 0E CA
-6C C4 64 C5 2A C4 E8 D3 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 D1 06 4D 41 52 4B 45 52 00
-B0 12 C0 CE BA 40 84 12 FC FF BA 40 E6 D3 FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A CF 34 D2 C4 D2 D8 D2 2C D4 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D2
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D4 8A D2
-B4 DC 0E D1 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D4 92 42 0C 18 70 D4 EF 3F 60 D4 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E D4 92 42
-C6 21 70 D4 30 4D 74 D4 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 D1 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C8 24 C8 B2 40 3E D5 3C D5
-B2 40 8A D2 0E 18 B2 40 B4 DC 0C 18 30 12 7E D4
-B2 40 8C C8 8A C8 B2 40 46 C9 44 C9 B2 40 A0 C7
-9E C7 B2 40 18 00 0A 18 37 40 1A C4 36 40 BC C4
-35 40 0E C4 34 40 00 C4 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 D4 04 57 41 52 4D 00 30 40 3E D5 3D 40
-74 D5 92 C3 30 01 1E 42 08 18 0E 93 12 24 F2 B0
-10 00 00 02 02 20 3E E3 1E 53 F2 D0 30 00 0A 02
-3E 90 0A 00 B1 27 3E 90 16 00 AE 2F 2E 93 7D 27
-86 2F 30 4D 52 C9 06 0D 1B 5B 37 6D 23 00 14 C9
-E2 C6 52 C9 1F 46 61 73 74 46 6F 72 74 68 20 56
-33 30 30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72
-65 6E 73 20 14 C9 34 C4 80 FF F2 C6 28 C5 D2 C6
-52 C9 0B 62 79 74 65 73 20 66 72 65 65 20 24 C7
-8A CD E2 D2 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
-B2 40 04 A5 20 01 B2 40 88 5A CC 01 B2 43 06 02
-B2 40 03 00 04 02 B2 40 FC FF 02 02 D2 D3 02 02
-F2 43 22 02 F2 D3 26 02 B2 40 00 A5 60 01 B2 40
-FF 1E 80 01 B2 40 B4 00 82 01 B2 40 79 00 84 01
-39 40 40 00 82 43 88 01 92 D2 5E 01 08 18 38 40
-59 14 18 83 FE 23 19 83 FA 23 39 40 00 10 29 83
-89 43 00 20 FC 23 39 40 26 00 29 83 B9 40 D6 D5
-DA FF FB 23 B2 40 2C C8 E4 FF B2 40 81 00 00 05
-92 42 02 18 06 05 92 42 04 18 08 05 92 C3 00 05
-92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12 3A D5
-48 3F 38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21
-09 9A 03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A
-C4 21 30 4D 1C 15 B0 12 2A C4 B6 C9 0E CA 32 C7
-AA D6 CA CA 28 C7 BE CD CC D6 AC D6 29 4E 39 90
-86 12 02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E
-02 00 04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41
-3E 40 28 00 B0 12 94 D6 19 42 C6 21 A2 53 C6 21
-89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53
-C4 21 B0 12 2A C4 B6 C9 CA CA 28 C7 0A D7 00 D7
-21 53 3E 90 10 00 83 2D E1 2B 0C D7 B2 41 C4 21
-DD 3F 87 12 B0 C5 72 D6 1A D7 0C 43 1B 42 C6 21
-A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53
-C4 21 B0 12 94 D6 0E 93 03 20 3C 40 00 03 21 3C
-1E 93 03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40
-20 03 17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92
-03 20 3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03
-08 3C 3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40
-10 02 92 53 C4 21 B0 12 94 D6 ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 21 B0 12 E8 D6 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 E8 D6 92 92 C0 21
-C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12
-E8 D6 FA 23 3C 50 10 00 B0 12 D0 D6 EF 3F 0C 43
-1B 42 C6 21 A2 53 C6 21 87 12 B0 C5 72 D6 F0 D7
-FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
-C8 3F B0 12 E8 D6 E1 23 3C 50 80 00 B0 12 D0 D6
-DC 3F 1C C8 04 52 45 54 49 00 87 12 34 C4 00 13
-C8 CB 2A C4 34 C4 2C 00 12 D7 E8 D7 2E D8 2E 4E
-0E DC 09 4B A4 3F 3E D0 03 4D 4F 56 84 12 24 D8
-00 40 38 D8 05 4D 4F 56 2E 42 84 12 24 D8 40 40
-00 00 03 41 44 44 84 12 24 D8 00 50 52 D8 05 41
-44 44 2E 42 84 12 24 D8 40 50 5E D8 04 41 44 44
-43 00 84 12 24 D8 00 60 6C D8 06 41 44 44 43 2E
-42 00 84 12 24 D8 40 60 14 D8 04 53 55 42 43 00
-84 12 24 D8 00 70 8A D8 06 53 55 42 43 2E 42 00
-84 12 24 D8 40 70 98 D8 03 53 55 42 84 12 24 D8
-00 80 A8 D8 05 53 55 42 2E 42 84 12 24 D8 40 80
-20 D0 03 43 4D 50 84 12 24 D8 00 90 C2 D8 05 43
-4D 50 2E 42 84 12 24 D8 40 90 0E D0 04 44 41 44
-44 00 84 12 24 D8 00 A0 DC D8 06 44 41 44 44 2E
-42 00 84 12 24 D8 40 A0 CE D8 03 42 49 54 84 12
-24 D8 00 B0 FA D8 05 42 49 54 2E 42 84 12 24 D8
-40 B0 06 D9 03 42 49 43 84 12 24 D8 00 C0 14 D9
-05 42 49 43 2E 42 84 12 24 D8 40 C0 20 D9 03 42
-49 53 84 12 24 D8 00 D0 2E D9 05 42 49 53 2E 42
-84 12 24 D8 40 D0 00 00 03 58 4F 52 84 12 24 D8
-00 E0 48 D9 05 58 4F 52 2E 42 84 12 24 D8 40 E0
-7A D8 03 41 4E 44 84 12 24 D8 00 F0 62 D9 05 41
-4E 44 2E 42 84 12 24 D8 40 F0 B0 C5 12 D7 80 D9
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-B4 D8 03 52 52 43 84 12 7A D9 00 10 92 D9 05 52
-52 43 2E 42 84 12 7A D9 40 10 9E D9 04 53 57 50
-42 00 84 12 7A D9 80 10 AC D9 03 52 52 41 84 12
-7A D9 00 11 BA D9 05 52 52 41 2E 42 84 12 7A D9
-40 11 C6 D9 03 53 58 54 84 12 7A D9 80 11 00 00
-04 50 55 53 48 00 84 12 7A D9 00 12 E0 D9 06 50
-55 53 48 2E 42 00 84 12 7A D9 40 12 3A D9 04 43
-41 4C 4C 00 84 12 7A D9 80 12 1A 53 0E 4A 87 12
-E2 C6 52 C9 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 3A CD B0 C5 72 D6 2A DA 92 53 C4 21 3E 40
-2C 00 B0 12 2A C4 B6 C9 CA CA 28 C7 BE CD DE D7
-42 DA 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F
-5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F D4 D9
-04 52 52 43 4D 00 84 12 24 DA 50 00 70 DA 04 52
-52 41 4D 00 84 12 24 DA 50 01 7E DA 04 52 4C 41
-4D 00 84 12 24 DA 50 02 8C DA 04 52 52 55 4D 00
-84 12 24 DA 50 03 EE D9 05 50 55 53 48 4D 84 12
-24 DA 00 15 A8 DA 04 50 4F 50 4D 00 84 12 24 DA
-00 17 85 12 00 3C 9A DA 03 53 3E 3D 85 12 00 38
-C8 DA 02 53 3C 00 85 12 00 34 B6 DA 03 30 3E 3D
-85 12 00 30 DC DA 02 30 3C 00 85 12 00 30 00 00
-02 55 3C 00 85 12 00 2C F0 DA 03 55 3E 3D 85 12
-00 28 E6 DA 03 30 3C 3E 85 12 00 24 04 DB 02 30
-3D 00 85 12 00 20 00 00 02 49 46 00 1A 42 C6 21
-8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D FA DA 04 54
-48 45 4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53
-0A 89 0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D
-EA D8 04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C
-00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 2E DB
-05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21
-2A 83 0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 21 30 4D 6E D9 05 41
-47 41 49 4E 87 12 C2 DA 76 DB 2A C4 00 00 05 57
-48 49 4C 45 87 12 1C DB 78 C4 2A C4 D2 DA 06 52
-45 50 45 41 54 00 87 12 C2 DA 76 DB 34 DB 2A C4
-D2 DB 3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43
-00 00 CA 23 98 42 C6 21 00 00 30 4D FE D9 03 42
-57 31 84 12 D0 DB E0 21 EE DB 03 42 57 32 84 12
-D0 DB E2 21 FA DB 03 42 57 33 84 12 D0 DB E4 21
-12 DC 3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43
-00 00 8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 84 12 10 DC E6 21
-36 DC 03 46 57 32 84 12 10 DC E8 21 42 DC 03 46
-57 33 84 12 10 DC EA 21 3E 90 00 30 07 24 3E E0
-00 04 3E B0 00 10 02 24 3E E0 00 08 30 4D 4E DC
-04 47 4F 54 4F 00 87 12 C2 DA B0 CD BE CB 2A C4
-00 00 05 3F 47 4F 54 4F 87 12 58 DC B0 CD BE CB
-2A C4 00 00 03 4A 4D 50 87 12 B0 CD A4 DB 2A C4
-82 DC 04 3F 4A 4D 50 00 87 12 58 DC B0 CD 78 C4
-76 DB 2A C4
-@FFFE
-D6 D5
-q
index 0cf9a92..62de337 100644 (file)
 @1800
-10 00 04 00 51 55 40 1F 05 00 18 00 B4 DC 8A D2
-2C 01 7B B0 FC C7 0E C8
+10 00 04 00 51 55 40 1F 05 00 18 00 50 DA D0 D0
+2D 01 6B B0 B6 C6 C8 C6
 @C400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C4
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C4 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C4 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C4 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C4 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C4 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C4 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C4 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C4 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C5 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C4 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C5 02 31 2D 00
-1E 83 30 4D D8 C4 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C5
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C5 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C5 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C4 01 3E 3E 8F F4 3B EB 37 0E C5 02 42 4C 00
-85 12 20 00 AC C5 04 42 41 53 45 00 85 12 DC 21
-C8 C4 05 53 54 41 54 45 85 12 BE 21 96 C5 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 C5 06 55 4D 2F
-4D 4F 44 00 30 12 62 C4 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C4 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C5
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 C5 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 C6
-02 23 53 00 87 12 32 C6 6A C6 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C6 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C5 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C5
-02 44 2E 00 87 12 D2 C5 44 C4 B0 C4 4C C5 64 C6
-BC C4 A2 C6 7E C6 14 C9 DC C8 2A C4 DC C5 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C4
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C6 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 C4
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A C6
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C6 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C6 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C5 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C7 03 4B 45 59 30 40 A0 C7
-18 42 0C 05 2F 83 8F 4E 00 00 B0 12 FC C7 92 B3
-1C 05 FD 27 1E 42 0C 05 B0 12 0E C8 30 4D 00 C7
-06 41 43 43 45 50 54 00 3C 40 6A C8 3B 40 34 C8
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C8 92 B3 1C 05 05 24 18 42 0C 05 38 90
-0A 00 04 20 21 53 39 40 22 C8 4D 15 A2 B3 1C 05
-FD 27 B2 40 11 00 0E 05 D2 C3 02 02 30 41 B2 40
-13 00 0E 05 D2 D3 02 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C8 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 0C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 1C 05 FD 27 82 48 0E 05 30 4D 60 C8
-2D 83 92 B3 1C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C6 04 45 4D 49 54 00 30 40 8C C8 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 C8 04 45 43 48
-4F 00 B2 40 82 48 58 C8 82 43 DE 21 30 4D E0 C6
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C8 92 43
-DE 21 30 4D 9C C6 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C8 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C8 EF 3F 00 C9
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C7 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C9 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C9 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C7 02 43
-52 00 30 40 46 C9 87 12 52 C9 02 0D 0A 00 14 C9
-2A C4 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C8 82 53 22 00 82 43 B4 21
-87 12 34 C4 52 C9 C8 CB 34 C4 22 00 B6 C9 80 C9
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 C8 82 2E
-22 00 87 12 6C C9 34 C4 14 C9 C8 CB 2A C4 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C4
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C4
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C4
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C4 02 3E 52 00 0E 12 3E 4F 30 4D 70 C4 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C4 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C4 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C4
+01 21 BE 4F 00 00 3E 4F 30 4D CC C4 02 30 3D 00
+1E 83 0E 7E 30 4D FC C4 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C5 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 C5 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 C5 02 23 53 00 87 12 88 C5 C0 C5
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C5
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C4 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C5 34 C4 86 C4 D4 C4 BA C5
+92 C4 F8 C5 D4 C5 D6 C7 42 CB 82 C7 2A C4 22 C5
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C5 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C6 18 42 0C 05 2F 83 8F 4E
+00 00 B0 12 B6 C6 92 B3 1C 05 FD 27 1E 42 0C 05
+B0 12 C8 C6 30 4D A2 B3 1C 05 FD 27 B2 40 11 00
+0E 05 D2 C3 02 02 30 41 B2 40 13 00 0E 05 D2 D3
+02 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C6
+B0 12 B6 C6 12 D2 0A 18 F9 3F F0 C4 06 41 43 43
+45 50 54 00 3C 40 64 C7 3B 40 2E C7 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C7
+92 B3 1C 05 05 24 18 42 0C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 0C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 82 48 0E 05 30 4D 5A C7 2D 83 92 B3 1C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C4 04 45 4D 49
+54 00 30 40 86 C7 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C C7 04 45 43 48 4F 00 B2 40 82 48
+52 C7 82 43 DE 21 30 4D 32 C6 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C7 92 43 DE 21 30 4D 20 C6
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C7
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C7 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C5
+02 43 52 00 30 40 08 C8 87 12 1E C8 02 0D 0A 00
+D6 C7 2A C4 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C5 82 53 22 00 82 43 B4 21 87 12 14 C8
+1E C8 B0 CA 14 C8 22 00 80 C8 4C C8 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA C7 82 2E 22 00 87 12 38 C8 14 C8 D6 C7
+B0 CA 2A C4 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,300 +86,279 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C4 34 40 00 C4 30 4D A2 C5 07 3E
+00 00 35 40 0E C4 34 40 00 C4 30 4D 82 C4 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 21 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 21 0C 43
-2D 15 3D 40 10 CB 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 CB 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C5
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C8 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C5 01 2C 1A 42 C6 21 A2 53 C6 21
-8A 4E 00 00 3E 4F 30 4D C6 CB 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52 C6 21
-BA 40 34 C4 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C9 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21 B2 4F
-C2 21 3E 4F 82 43 C4 21 30 4D 87 12 2A CC B0 C5
-B6 C9 44 CC 3D 40 4C CC E2 22 5D 3E 4E CC 0A 4E
-3E 4F 3D 40 64 CC 39 27 3D 40 3E CC 1A E2 BE 21
-B3 27 AD 23 66 CC 3E 4F 3D 40 3E CC BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CF
-CD 3F B6 CB 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A C4 3A CC
-A2 CC B2 41 C4 21 B2 41 C2 21 B2 41 C0 21 3D 41
-30 4D 6C C5 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 21 0C 43 2D 15 3D 40 F4 C9 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 C9 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E C5 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 21 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E C6 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 21 30 4D B6 C4 01 2C
+1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D
+EC C6 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
+A6 C7 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE CA 87 4C 49 54 45 52 41 4C 82 93 BE 21 0C 24
+1A 42 C6 21 A2 52 C6 21 BA 40 14 C8 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 C8 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 21 B2 4F C2 21 3E 4F 82 43 C4 21
+30 4D 85 12 20 00 87 12 32 CB 42 CB 80 C8 50 CB
+3D 40 58 CB CC 22 82 3E 5A CB 0A 4E 3E 4F 3D 40
+70 CB 23 27 3D 40 4A CB 1A E2 BE 21 A1 27 B5 23
+72 CB 3E 4F 3D 40 4A CB B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 CE CB 3F D2 CA
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 21 3C 49
+3B 49 3A 49 3D 15 B0 12 2A C4 46 CB AE CB B2 41
+C4 21 B2 41 C2 21 B2 41 C0 21 3D 41 30 4D 85 12
+BE 21 08 C5 04 51 55 49 54 00 82 43 08 18 31 40
 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12 2A C4
-42 C9 92 C8 DC C8 3A CC DE C4 70 C5 52 C9 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CD 34 C4
-30 FF F2 C6 8A C5 52 C9 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CD 24 C7 D0 CC C0 C7 05 41 42 4F
-52 54 3F 40 80 20 D1 3F 0C CD 86 41 42 4F 52 54
-22 00 87 12 6C C9 34 C4 2E CD C8 CB 2A C4 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D4 B0 12
-FC C7 92 C3 1C 05 38 40 50 55 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 1C 05 F2 23 87 12
-6A D4 34 C4 DE 21 F2 C4 B2 C8 52 C9 04 1B 5B 37
-6D 00 14 C9 54 C4 28 C7 8A CD 42 C9 52 C9 05 6C
-69 6E 65 3A 14 C9 40 C5 D2 C6 14 C9 52 C9 04 1B
-5B 30 6D 00 14 C9 12 CD 00 00 83 5B 27 5D 87 12
-B0 CD 34 C4 34 C4 C8 CB C8 CB 2A C4 08 CA 01 27
-87 12 B0 C5 B6 C9 0E CA 28 C7 BE CD 2A C4 6E CC
-CE C5 81 5C 92 42 C0 21 C4 21 30 4D 9A CD 81 5B
-82 43 BE 21 30 4D C2 CD 01 5D B2 43 BE 21 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C7 82 49 53 00 87 12
-C8 C5 F2 C4 28 C7 02 CE 9E CD 34 C4 E0 CD C8 CB
-2A C4 B0 CD E0 CD 2A C4 EA CD 09 49 4D 4D 45 44
+04 C8 8C C7 42 CB 82 C7 46 CB A4 C4 0C C5 1E C8
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 CC
+14 C8 30 FF A0 CA 26 C5 1E C8 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 CC 3C C6 E0 CB C2 CA 05 41
+42 4F 52 54 3F 40 80 20 D0 3F 1E CC 86 41 42 4F
+52 54 22 00 87 12 38 C8 14 C8 40 CC B0 CA 2A C4
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 D1
+B0 12 B6 C6 92 C3 1C 05 38 40 50 55 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 1C 05 F3 23 87 12
+42 D1 14 C8 DE 21 EA C4 AC C7 1E C8 04 1B 5B 37
+6D 00 D6 C7 58 C4 40 C6 9A CC 04 C8 1E C8 05 6C
+69 6E 65 3A D6 C7 D0 C4 24 C6 D6 C7 1E C8 04 1B
+5B 30 6D 00 D6 C7 24 CC 00 00 83 5B 27 5D 87 12
+C0 CC 14 C8 14 C8 B0 CA B0 CA 2A C4 E8 C8 01 27
+87 12 42 CB 80 C8 EE C8 40 C6 CE CC 2A C4 7A CB
+32 C5 81 5C 92 42 C0 21 C4 21 30 4D AA CC 81 5B
+82 43 BE 21 30 4D D2 CC 01 5D B2 43 BE 21 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A CA 82 49 53 00 87 12
+BE CB EA C4 40 C6 12 CD AE CC 14 C8 F0 CC B0 CA
+2A C4 C0 CC F0 CC 2A C4 FA CC 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00 30 4D
-68 C9 87 52 45 43 55 52 53 45 19 42 C6 21 99 42
-BA 21 00 00 A2 53 C6 21 30 4D B4 CC 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C5 B6 C9 0E CA 54 C4
-28 C7 BE CD 70 C5 28 C7 66 CE 34 C4 34 C4 C8 CB
-C8 CB 34 C4 C8 CB C8 CB 2A C4 CE CD 81 3B 82 93
-BE 21 A8 27 87 12 34 C4 2A C4 C8 CB 04 CF D0 CD
-2A C4 6C CE 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CE BA 40 87 12 FC FF A2 83 C6 21 B2 43
-BE 21 82 4F BC 21 30 4D 84 CE 01 3A 30 12 A4 CE
-87 12 92 C9 B0 C5 B6 C9 CA CE 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CE 02 00
-82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52 82 4A
-C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21 19 42
-B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C9
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CD B0 C9 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CE BA 40 86 12 FC FF E4 3F 16 CC 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CE BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CF 06 43 52 45 41 54
-45 00 B0 12 C0 CE BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CC 05 44 4F 45 53 3E 1A 42 BA 21 BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CF 05 44
-45 46 45 52 30 12 12 CF 8B 3F 6E CA 05 3E 42 4F
-44 59 2E 52 30 4D 6A CF 04 43 4F 44 45 00 B0 12
-C0 CE 2A 82 82 4A C6 21 87 12 B2 CE 94 D2 66 D2
-2A C4 B8 CF 07 43 4F 44 45 4E 4E 4D 87 12 8C CE
-D0 CD C2 CF 2A C4 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D2 04 CF 2A C4 1A CD 03 41 53 4D 92 42
-DA 21 EC 21 B2 40 6A D2 DA 21 D9 3F E8 CF 06 45
-4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00
-A2 53 C6 21 B2 43 BE 21 30 40 AE D2 00 00 05 4C
-4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40
-2A C4 02 00 A2 52 C6 21 ED 3F 0A CE 85 48 49 32
-4C 4F 87 12 F2 C6 8C D0 C8 CB D0 CD 94 D2 66 D2
-2A C4 5C D0 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 21 A2 52 C6 21 BE 40 28 C7 00 00 2E 53 30 4D
-9E CF 84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21
-BA 40 24 C7 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C9 84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F
-30 4D D4 CF 85 42 45 47 49 4E 30 40 F2 C6 B2 D0
-85 55 4E 54 49 4C 39 40 28 C7 A2 52 C6 21 1A 42
-C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CF
-85 41 47 41 49 4E 39 40 24 C7 EF 3F 34 CF 85 57
-48 49 4C 45 87 12 78 D0 78 C4 2A C4 22 CE 86 52
-45 50 45 41 54 00 87 12 F6 D0 B8 D0 2A C4 92 D0
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42
-C6 21 BE 40 3C C7 FE FF A2 53 00 20 1A 42 00 20
-8A 43 00 00 30 4D DA CB 84 4C 4F 4F 50 00 39 40
-5E C7 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C7 85 2B 4C 4F
-4F 50 39 40 4C C7 E5 3F 48 D1 85 4C 45 41 56 45
-1A 42 C6 21 BA 40 6E C7 00 00 BA 40 24 C7 02 00
-B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42 00 20
-89 4A 00 00 30 4D 8A D1 04 4D 4F 56 45 00 0A 4E
+C4 CB 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 CB
+80 C8 EE C8 58 C4 40 C6 CE CC 0C C5 40 C6 5C CD
+14 C8 14 C8 B0 CA B0 CA 14 C8 B0 CA B0 CA 2A C4
+DE CC 81 3B 82 93 BE 21 B5 27 87 12 14 C8 2A C4
+B0 CA FA CD E0 CC 2A C4 62 CD 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 CD 2F 83 8F 4E 00 00 1E 42 C6 21
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 21 B2 43 BE 21 30 4D
+7A CD 01 3A 30 12 A0 CD 92 B3 C6 21 A2 63 C6 21
+87 12 42 CB 80 C8 C8 CD 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 21 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 21 82 49 B8 21 82 4A BA 21 82 4F
+BC 21 2A 52 82 4A C6 21 30 41 82 9F BC 21 09 20
+18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E C8 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C CC 90 CB 05 44 45 46 45 52
+B0 12 B8 CD BA 40 30 40 FC FF BA 40 AE CD FE FF
+E3 3F 1E CB 06 43 52 45 41 54 45 00 B0 12 B8 CD
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A CE 05 44
+4F 45 53 3E 1A 42 BA 21 BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E C9 05 3E 42 4F 44 59 2E 52
+30 4D 44 CE 04 43 4F 44 45 00 B0 12 B8 CD A2 82
+C6 21 87 12 D2 D0 AC D0 2A C4 84 CE 07 43 4F 44
+45 4E 4E 4D B0 12 86 CD F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 D0 FA CD 2A C4 2C CC 03 41
+53 4D B2 40 B0 D0 DA 21 E0 3F AC CE 06 45 4E 44
+41 53 4D 00 87 12 B4 CE F4 D0 2A C4 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12 00 00 A2 53
+C6 21 B2 43 BE 21 30 40 E0 D0 00 00 05 4C 4F 32
+48 49 1A 42 C6 21 BA 40 B0 12 00 00 BA 40 2A C4
+02 00 A2 52 C6 21 ED 3F 1A CD 85 48 49 32 4C 4F
+87 12 A0 CA 4A CF B0 CA E0 CC D2 D0 AC D0 2A C4
+1A CF 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 21
+A2 52 C6 21 BE 40 40 C6 00 00 2E 53 30 4D 5E CE
+84 45 4C 53 45 00 A2 52 C6 21 1A 42 C6 21 BA 40
+3C C6 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 C7
+84 54 48 45 4E 00 9E 42 C6 21 00 00 3E 4F 30 4D
+9C CE 85 42 45 47 49 4E 30 40 A0 CA 70 CF 85 55
+4E 54 49 4C 39 40 40 C6 A2 52 C6 21 1A 42 C6 21
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE CE 85 41
+47 41 49 4E 39 40 3C C6 EF 3F 7A C8 85 57 48 49
+4C 45 87 12 36 CF 76 C4 2A C4 34 C8 86 52 45 50
+45 41 54 00 87 12 B4 CF 76 CF 2A C4 50 CF 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 21 1E 42 C6 21
+BE 40 54 C6 FE FF A2 53 00 20 1A 42 00 20 8A 43
+00 00 30 4D E2 CA 84 4C 4F 4F 50 00 39 40 76 C6
+A2 52 C6 21 1A 42 C6 21 8A 49 FC FF 8A 4E FE FF
+1E 42 00 20 A2 83 00 20 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 C6 85 2B 4C 4F 4F 50
+39 40 64 C6 E5 3F 06 D0 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE D0
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CF
-34 C4 10 00 34 C4 00 00 3C C7 34 C4 00 00 C8 CB
-5E C7 0A D2 F2 C6 34 C4 C8 21 44 C4 F2 C4 C8 CB
-FA C4 8A CF 34 C4 CA 21 FA C4 2A C4 AE CD 05 46
-4F 52 54 48 84 12 24 D2 8E D2 C4 D5 CC D2 2E D2
-74 D0 7C D1 F8 D3 BE D2 8E D4 A8 D4 D0 D0 34 D5
-00 00 CC D3 D8 CD AC CF 00 00 F0 D0 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D2 9E DB 06 DC 52 DB
-70 DC 18 DB 94 DC 44 D8 00 00 0E DB BE DB 70 DB
-AE DB 54 D9 00 00 00 00 A2 DC 58 D2 5C D2 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40 CC 21
-9D 3F 3C CE 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E C9 04 4F
-4E 4C 59 00 82 43 CC 21 30 4D 20 D1 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21 30 4D
-C4 D0 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CE 86 5B 54 48 45 4E 5D 00 30 4D 14 D3
-86 5B 45 4C 53 45 5D 00 87 12 34 C4 00 00 36 C5
-B0 C5 B6 C9 1C CC 44 C4 28 C7 8E D3 8A C4 8A C4
-52 C9 06 5B 54 48 45 4E 5D 00 EA D2 32 C7 5C D3
-36 C9 40 C5 54 C4 32 C7 30 D3 2A C4 8A C4 8A C4
-52 C9 06 5B 45 4C 53 45 5D 00 EA D2 32 C7 7C D3
-36 C9 40 C5 54 C4 32 C7 2E D3 2A C4 52 C9 04 5B
-49 46 5D 00 EA D2 32 C7 30 D3 24 C7 2E D3 36 C9
-52 C9 05 0D 0A 6B 6F 20 14 C9 92 C8 2A CC 24 C7
-30 D3 20 D3 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D3 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C5 B6 C9 0E CA 6C C4 2A C4 B4 D3 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C5 B6 C9 0E CA
-6C C4 64 C5 2A C4 E8 D3 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 D1 06 4D 41 52 4B 45 52 00
-B0 12 C0 CE BA 40 84 12 FC FF BA 40 E6 D3 FE FF
-9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21
-30 40 0A CF 34 D2 C4 D2 D8 D2 2C D4 3A 4E 82 4A
-C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D2
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D4 8A D2
-B4 DC 0E D1 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D4 92 42 0C 18 70 D4 EF 3F 60 D4 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 21 6E D4 92 42
-C6 21 70 D4 30 4D 74 D4 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18 EC 3F
-F0 D1 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C8 24 C8 B2 40 3E D5 3C D5
-B2 40 8A D2 0E 18 B2 40 B4 DC 0C 18 30 12 7E D4
-B2 40 8C C8 8A C8 B2 40 46 C9 44 C9 B2 40 A0 C7
-9E C7 B2 40 18 00 0A 18 37 40 1A C4 36 40 BC C4
-35 40 0E C4 34 40 00 C4 39 40 10 00 29 83 89 43
-E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00 B4 21
-30 41 C2 D4 04 57 41 52 4D 00 30 40 3E D5 3D 40
-74 D5 92 C3 30 01 1E 42 08 18 0E 93 12 24 F2 B0
-10 00 00 02 02 20 3E E3 1E 53 F2 D0 30 00 0A 02
-3E 90 0A 00 B1 27 3E 90 16 00 AE 2F 2E 93 7D 27
-86 2F 30 4D 52 C9 06 0D 1B 5B 37 6D 23 00 14 C9
-E2 C6 52 C9 1F 46 61 73 74 46 6F 72 74 68 20 56
-33 30 30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72
-65 6E 73 20 14 C9 34 C4 80 FF F2 C6 28 C5 D2 C6
-52 C9 0B 62 79 74 65 73 20 66 72 65 65 20 24 C7
-8A CD E2 D2 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
-B2 40 04 A5 20 01 B2 40 88 5A CC 01 B2 43 06 02
-B2 40 03 00 04 02 B2 40 FC FF 02 02 D2 D3 02 02
-F2 43 22 02 F2 D3 26 02 B2 40 00 A5 60 01 B2 40
-FF 1E 80 01 B2 40 B6 00 82 01 B2 40 F4 00 84 01
-39 40 80 00 82 43 88 01 92 D2 5E 01 08 18 38 40
-59 14 18 83 FE 23 19 83 FA 23 39 40 00 10 29 83
-89 43 00 20 FC 23 39 40 26 00 29 83 B9 40 D6 D5
-DA FF FB 23 B2 40 2C C8 E4 FF B2 40 81 00 00 05
-92 42 02 18 06 05 92 42 04 18 08 05 92 C3 00 05
-92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12 3A D5
-48 3F 38 40 C0 21 39 48 2A 48 09 5A 1A 52 C4 21
-09 9A 03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A
-C4 21 30 4D 1C 15 B0 12 2A C4 B6 C9 0E CA 32 C7
-AA D6 CA CA 28 C7 BE CD CC D6 AC D6 29 4E 39 90
-86 12 02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E
-02 00 04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41
-3E 40 28 00 B0 12 94 D6 19 42 C6 21 A2 53 C6 21
-89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 21 92 53
-C4 21 B0 12 2A C4 B6 C9 CA CA 28 C7 0A D7 00 D7
-21 53 3E 90 10 00 83 2D E1 2B 0C D7 B2 41 C4 21
-DD 3F 87 12 B0 C5 72 D6 1A D7 0C 43 1B 42 C6 21
-A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00 2D 20 92 53
-C4 21 B0 12 94 D6 0E 93 03 20 3C 40 00 03 21 3C
-1E 93 03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40
-20 03 17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92
-03 20 3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03
-08 3C 3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40
-10 02 92 53 C4 21 B0 12 94 D6 ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 21 B0 12 E8 D6 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 E8 D6 92 92 C0 21
-C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12
-E8 D6 FA 23 3C 50 10 00 B0 12 D0 D6 EF 3F 0C 43
-1B 42 C6 21 A2 53 C6 21 87 12 B0 C5 72 D6 F0 D7
-FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
-C8 3F B0 12 E8 D6 E1 23 3C 50 80 00 B0 12 D0 D6
-DC 3F 1C C8 04 52 45 54 49 00 87 12 34 C4 00 13
-C8 CB 2A C4 34 C4 2C 00 12 D7 E8 D7 2E D8 2E 4E
-0E DC 09 4B A4 3F 3E D0 03 4D 4F 56 84 12 24 D8
-00 40 38 D8 05 4D 4F 56 2E 42 84 12 24 D8 40 40
-00 00 03 41 44 44 84 12 24 D8 00 50 52 D8 05 41
-44 44 2E 42 84 12 24 D8 40 50 5E D8 04 41 44 44
-43 00 84 12 24 D8 00 60 6C D8 06 41 44 44 43 2E
-42 00 84 12 24 D8 40 60 14 D8 04 53 55 42 43 00
-84 12 24 D8 00 70 8A D8 06 53 55 42 43 2E 42 00
-84 12 24 D8 40 70 98 D8 03 53 55 42 84 12 24 D8
-00 80 A8 D8 05 53 55 42 2E 42 84 12 24 D8 40 80
-20 D0 03 43 4D 50 84 12 24 D8 00 90 C2 D8 05 43
-4D 50 2E 42 84 12 24 D8 40 90 0E D0 04 44 41 44
-44 00 84 12 24 D8 00 A0 DC D8 06 44 41 44 44 2E
-42 00 84 12 24 D8 40 A0 CE D8 03 42 49 54 84 12
-24 D8 00 B0 FA D8 05 42 49 54 2E 42 84 12 24 D8
-40 B0 06 D9 03 42 49 43 84 12 24 D8 00 C0 14 D9
-05 42 49 43 2E 42 84 12 24 D8 40 C0 20 D9 03 42
-49 53 84 12 24 D8 00 D0 2E D9 05 42 49 53 2E 42
-84 12 24 D8 40 D0 00 00 03 58 4F 52 84 12 24 D8
-00 E0 48 D9 05 58 4F 52 2E 42 84 12 24 D8 40 E0
-7A D8 03 41 4E 44 84 12 24 D8 00 F0 62 D9 05 41
-4E 44 2E 42 84 12 24 D8 40 F0 B0 C5 12 D7 80 D9
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-B4 D8 03 52 52 43 84 12 7A D9 00 10 92 D9 05 52
-52 43 2E 42 84 12 7A D9 40 10 9E D9 04 53 57 50
-42 00 84 12 7A D9 80 10 AC D9 03 52 52 41 84 12
-7A D9 00 11 BA D9 05 52 52 41 2E 42 84 12 7A D9
-40 11 C6 D9 03 53 58 54 84 12 7A D9 80 11 00 00
-04 50 55 53 48 00 84 12 7A D9 00 12 E0 D9 06 50
-55 53 48 2E 42 00 84 12 7A D9 40 12 3A D9 04 43
-41 4C 4C 00 84 12 7A D9 80 12 1A 53 0E 4A 87 12
-E2 C6 52 C9 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 3A CD B0 C5 72 D6 2A DA 92 53 C4 21 3E 40
-2C 00 B0 12 2A C4 B6 C9 CA CA 28 C7 BE CD DE D7
-42 DA 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F
-5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F D4 D9
-04 52 52 43 4D 00 84 12 24 DA 50 00 70 DA 04 52
-52 41 4D 00 84 12 24 DA 50 01 7E DA 04 52 4C 41
-4D 00 84 12 24 DA 50 02 8C DA 04 52 52 55 4D 00
-84 12 24 DA 50 03 EE D9 05 50 55 53 48 4D 84 12
-24 DA 00 15 A8 DA 04 50 4F 50 4D 00 84 12 24 DA
-00 17 85 12 00 3C 9A DA 03 53 3E 3D 85 12 00 38
-C8 DA 02 53 3C 00 85 12 00 34 B6 DA 03 30 3E 3D
-85 12 00 30 DC DA 02 30 3C 00 85 12 00 30 00 00
-02 55 3C 00 85 12 00 2C F0 DA 03 55 3E 3D 85 12
-00 28 E6 DA 03 30 3C 3E 85 12 00 24 04 DB 02 30
-3D 00 85 12 00 20 00 00 02 49 46 00 1A 42 C6 21
-8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D FA DA 04 54
-48 45 4E 00 1A 42 C6 21 08 4E 3E 4F 09 48 29 53
-0A 89 0A 11 3A 90 00 02 61 2F 88 DA 00 00 30 4D
-EA D8 04 45 4C 53 45 00 1A 42 C6 21 BA 40 00 3C
-00 00 A2 53 C6 21 2F 83 8F 4A 00 00 E3 3F 2E DB
-05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 21
-2A 83 0A 89 0A 11 3A 90 00 FE 40 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 21 30 4D 6E D9 05 41
-47 41 49 4E 87 12 C2 DA 76 DB 2A C4 00 00 05 57
-48 49 4C 45 87 12 1C DB 78 C4 2A C4 D2 DA 06 52
-45 50 45 41 54 00 87 12 C2 DA 76 DB 34 DB 2A C4
-D2 DB 3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43
-00 00 CA 23 98 42 C6 21 00 00 30 4D FE D9 03 42
-57 31 84 12 D0 DB E0 21 EE DB 03 42 57 32 84 12
-D0 DB E2 21 FA DB 03 42 57 33 84 12 D0 DB E4 21
-12 DC 3D 41 1A 42 C6 21 2E 4E 28 4E 08 93 8E 43
-00 00 8B 23 BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 84 12 10 DC E6 21
-36 DC 03 46 57 32 84 12 10 DC E8 21 42 DC 03 46
-57 33 84 12 10 DC EA 21 3E 90 00 30 07 24 3E E0
-00 04 3E B0 00 10 02 24 3E E0 00 08 30 4D 4E DC
-04 47 4F 54 4F 00 87 12 C2 DA B0 CD BE CB 2A C4
-00 00 05 3F 47 4F 54 4F 87 12 58 DC B0 CD BE CB
-2A C4 00 00 03 4A 4D 50 87 12 B0 CD A4 DB 2A C4
-82 DC 04 3F 4A 4D 50 00 87 12 58 DC B0 CD 78 C4
-76 DB 2A C4
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 C8
+CA 21 F2 C4 2A C4 84 12 7E D0 AE CF 36 D3 DE CF
+BE CC 32 CF 3A D0 4A D4 64 C8 66 D1 80 D1 8E CF
+00 D2 00 00 1C D4 E8 CC 78 CE 00 00 84 12 7E D0
+68 D9 CA D9 1C D9 3E DA E2 D8 00 00 12 D6 00 00
+D8 D8 88 D9 3A D9 78 D9 22 D7 00 00 00 00 1A DA
+AA D0 3A 40 0C 00 39 40 CA 21 38 40 CC 21 C6 3F
+3A 40 0E 00 39 40 CC 21 38 40 CA 21 B9 3F 82 43
+CC 21 30 4D 92 42 CA 21 DA 21 30 4D 86 D0 EE D0
+F4 D0 04 D1 3A 4E 82 4A C8 21 2E 4E 82 4E C6 21
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 CD 09 50 57 52 5F 53 54 41
+54 45 84 12 FC D0 D0 D0 50 DA CC CF 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 D1 92 42 0C 18
+48 D1 EF 3F 38 D1 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 21 46 D1 92 42 C6 21 48 D1 30 4D 4C D1
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 21 0E 18
+92 42 C6 21 0C 18 EC 3F BC CF 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 C6
+DE C6 B2 40 0A D2 08 D2 B2 40 D0 D0 0E 18 B2 40
+50 DA 0C 18 30 12 56 D1 B2 40 86 C7 84 C7 B2 40
+08 C8 06 C8 B2 40 98 C6 96 C6 B2 40 18 00 0A 18
+37 40 1A C4 36 40 92 C4 35 40 0E C4 34 40 00 C4
+B2 40 0A 00 DC 21 B2 40 20 00 B4 21 30 41 9A D1
+04 57 41 52 4D 00 30 40 0A D2 3D 40 40 D2 92 C3
+30 01 1E 42 08 18 0E 93 12 24 F2 B0 10 00 00 02
+02 20 3E E3 1E 53 F2 D0 30 00 0A 02 3E 90 0A 00
+B7 27 3E 90 16 00 B4 2F 2E 93 83 27 8C 2F 30 4D
+1E C8 06 0D 1B 5B 37 6D 23 00 D6 C7 34 C6 1E C8
+19 46 61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D
+2E 54 68 6F 6F 72 65 6E 73 20 D6 C7 14 C8 30 FF
+A0 CA B8 C4 24 C6 1E C8 0A 62 79 74 65 73 20 66
+72 65 65 00 3C C6 9A CC 82 CF 04 43 4F 4C 44 00
+92 B3 0A 05 FD 23 B2 40 04 A5 20 01 40 D2 B2 40
+88 5A CC 01 B2 43 06 02 B2 40 FC FF 02 02 D2 D3
+02 02 F2 D3 26 02 F2 43 22 02 B2 40 00 A5 60 01
+B2 40 FF 1E 80 01 B2 40 B6 00 82 01 B2 40 F4 00
+84 01 39 40 80 00 82 43 88 01 92 D2 5E 01 08 18
+38 40 59 14 18 83 FE 23 19 83 FA 23 39 40 00 10
+29 83 89 43 00 20 FC 23 39 40 26 00 29 83 B9 40
+9E D2 DA FF FB 23 B2 40 26 C7 E4 FF B2 40 81 00
+00 05 92 42 02 18 06 05 92 42 04 18 08 05 92 C3
+00 05 92 D3 1A 05 3F 40 80 20 31 40 E0 20 30 12
+06 D2 53 3F 8A D2 07 43 4F 4D 50 41 52 45 0C 4E
+38 4F 3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30
+1C 83 07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43
+30 4D 1E 43 30 4D B2 CD 86 5B 54 48 45 4E 5D 00
+30 4D 68 D3 86 5B 45 4C 53 45 5D 00 87 12 14 C8
+00 00 C6 C4 42 CB 80 C8 24 CB 34 C4 40 C6 DE D3
+44 C4 1E C8 06 5B 54 48 45 4E 5D 00 3E D3 4A C6
+AE D3 F8 C7 D0 C4 58 C4 4A C6 84 D3 2A C4 44 C4
+1E C8 06 5B 45 4C 53 45 5D 00 3E D3 4A C6 CC D3
+F8 C7 D0 C4 58 C4 4A C6 82 D3 2A C4 1E C8 04 5B
+49 46 5D 00 3E D3 4A C6 84 D3 3C C6 82 D3 F8 C7
+1E C8 05 0D 0A 6B 6F 20 D6 C7 8C C7 32 CB 3C C6
+84 D3 74 D3 84 5B 49 46 5D 00 0E 93 3E 4F BE 27
+30 4D F4 D3 89 5B 44 45 46 49 4E 45 44 5D 87 12
+42 CB 80 C8 EE C8 6A C4 2A C4 04 D4 8B 5B 55 4E
+44 45 46 49 4E 45 44 5D 87 12 42 CB 80 C8 EE C8
+6A C4 00 C5 2A C4 38 D4 3D 41 B2 4E 0E 18 A2 4E
+0C 18 3E 4F 30 40 56 D1 48 D0 06 4D 41 52 4B 45
+52 00 B0 12 B8 CD BA 40 84 12 FC FF BA 40 36 D4
+FE FF 9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52
+C6 21 30 40 00 CE 1C 15 B0 12 2A C4 80 C8 EE C8
+4A C6 8C D4 AA C9 40 C6 CE CC A6 D4 8E D4 39 4E
+39 80 86 12 08 24 19 53 02 20 2E 4E 04 3C 2E 53
+19 53 01 24 2E 82 1B 17 30 41 3E 40 28 00 B0 12
+76 D4 19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 40
+29 00 1C 15 12 12 C4 21 92 53 C4 21 B0 12 2A C4
+80 C8 AA C9 40 C6 E4 D4 DA D4 21 53 3E 90 10 00
+7D 2D E1 2B E6 D4 B2 41 C4 21 DD 3F 87 12 42 CB
+74 C8 F4 D4 0C 43 1B 42 C6 21 A2 53 C6 21 6A 4E
+3E 4F 7A 90 23 00 27 20 92 53 C4 21 B0 12 76 D4
+3C 40 00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24
+3C 40 20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24
+3C 40 30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24
+3C 40 30 00 19 42 C6 21 A2 53 C6 21 89 4E 00 00
+3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02
+92 53 C4 21 B0 12 76 D4 ED 3F 7A 90 40 00 16 20
+3C 40 20 00 92 53 C4 21 B0 12 C2 D4 0C 20 3C 50
+10 00 3E 40 2B 00 B0 12 C2 D4 92 92 C0 21 C4 21
+02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12 C2 D4
+FA 23 3C 50 10 00 B0 12 AA D4 EF 3F 0C 43 1B 42
+C6 21 A2 53 C6 21 87 12 42 CB 74 C8 BE D5 FE 90
+26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F
+B0 12 C2 D4 E1 23 3C 50 80 00 B0 12 AA D4 DC 3F
+D6 C6 04 52 45 54 49 00 87 12 14 C8 00 13 B0 CA
+2A C4 14 C8 2C 00 EC D4 B6 D5 FC D5 09 4B 2E 4E
+0E DC A4 3F FC CE 03 4D 4F 56 84 12 F2 D5 00 40
+06 D6 05 4D 4F 56 2E 42 84 12 F2 D5 40 40 00 00
+03 41 44 44 84 12 F2 D5 00 50 20 D6 05 41 44 44
+2E 42 84 12 F2 D5 40 50 2C D6 04 41 44 44 43 00
+84 12 F2 D5 00 60 3A D6 06 41 44 44 43 2E 42 00
+84 12 F2 D5 40 60 E2 D5 04 53 55 42 43 00 84 12
+F2 D5 00 70 58 D6 06 53 55 42 43 2E 42 00 84 12
+F2 D5 40 70 66 D6 03 53 55 42 84 12 F2 D5 00 80
+76 D6 05 53 55 42 2E 42 84 12 F2 D5 40 80 DE CE
+03 43 4D 50 84 12 F2 D5 00 90 90 D6 05 43 4D 50
+2E 42 84 12 F2 D5 40 90 CC CE 04 44 41 44 44 00
+84 12 F2 D5 00 A0 AA D6 06 44 41 44 44 2E 42 00
+84 12 F2 D5 40 A0 9C D6 03 42 49 54 84 12 F2 D5
+00 B0 C8 D6 05 42 49 54 2E 42 84 12 F2 D5 40 B0
+D4 D6 03 42 49 43 84 12 F2 D5 00 C0 E2 D6 05 42
+49 43 2E 42 84 12 F2 D5 40 C0 EE D6 03 42 49 53
+84 12 F2 D5 00 D0 FC D6 05 42 49 53 2E 42 84 12
+F2 D5 40 D0 00 00 03 58 4F 52 84 12 F2 D5 00 E0
+16 D7 05 58 4F 52 2E 42 84 12 F2 D5 40 E0 48 D6
+03 41 4E 44 84 12 F2 D5 00 F0 30 D7 05 41 4E 44
+2E 42 84 12 F2 D5 40 F0 42 CB EC D4 4E D7 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 82 D6
+03 52 52 43 84 12 48 D7 00 10 60 D7 05 52 52 43
+2E 42 84 12 48 D7 40 10 6C D7 04 53 57 50 42 00
+84 12 48 D7 80 10 7A D7 03 52 52 41 84 12 48 D7
+00 11 88 D7 05 52 52 41 2E 42 84 12 48 D7 40 11
+94 D7 03 53 58 54 84 12 48 D7 80 11 00 00 04 50
+55 53 48 00 84 12 48 D7 00 12 AE D7 06 50 55 53
+48 2E 42 00 84 12 48 D7 40 12 08 D7 04 43 41 4C
+4C 00 84 12 48 D7 80 12 1A 53 0E 4A 87 12 34 C6
+1E C8 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+4C CC 42 CB 74 C8 F8 D7 92 53 C4 21 3E 40 2C 00
+B0 12 2A C4 80 C8 AA C9 40 C6 CE CC AC D5 10 D8
+0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E
+94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F A2 D7 04 52
+52 43 4D 00 84 12 F2 D7 50 00 3E D8 04 52 52 41
+4D 00 84 12 F2 D7 50 01 4C D8 04 52 4C 41 4D 00
+84 12 F2 D7 50 02 5A D8 04 52 52 55 4D 00 84 12
+F2 D7 50 03 BC D7 05 50 55 53 48 4D 84 12 F2 D7
+00 15 76 D8 04 50 4F 50 4D 00 84 12 F2 D7 00 17
+68 D8 03 53 3E 3D 85 12 00 38 92 D8 02 53 3C 00
+85 12 00 34 84 D8 03 30 3E 3D 85 12 00 30 A6 D8
+02 30 3C 00 85 12 00 30 00 00 02 55 3C 00 85 12
+00 2C BA D8 03 55 3E 3D 85 12 00 28 B0 D8 03 30
+3C 3E 85 12 00 24 CE D8 02 30 3D 00 85 12 00 20
+00 00 02 49 46 00 1A 42 C6 21 8A 4E 00 00 A2 53
+C6 21 0E 4A 30 4D C4 D8 04 54 48 45 4E 00 1A 42
+C6 21 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
+00 02 63 2F 88 DA 00 00 30 4D B8 D6 04 45 4C 53
+45 00 1A 42 C6 21 BA 40 00 3C 00 00 A2 53 C6 21
+2F 83 8F 4A 00 00 E3 3F F8 D8 05 55 4E 54 49 4C
+3A 4F 08 4E 3E 4F 19 42 C6 21 2A 83 0A 89 0A 11
+3A 90 00 FE 42 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C6 21 30 4D 3C D7 05 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 87 12
+E6 D8 76 C4 2A C4 9C D8 06 52 45 50 45 41 54 00
+87 12 6E D9 FE D8 2A C4 9A D9 3D 41 08 4E 3E 4F
+2A 48 B2 92 C4 21 CD 2F 98 42 C6 21 00 00 30 4D
+CC D7 03 42 57 31 84 12 98 D9 00 00 B2 D9 03 42
+57 32 84 12 98 D9 00 00 BE D9 03 42 57 33 84 12
+98 D9 00 00 D6 D9 3D 41 1A 42 C6 21 28 4E B2 92
+C4 21 90 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
+3E 4F 30 4D 00 00 03 46 57 31 84 12 D4 D9 00 00
+F6 D9 03 46 57 32 84 12 D4 D9 00 00 02 DA 03 46
+57 33 84 12 D4 D9 00 00 00 00 05 3F 47 4F 54 4F
+3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10 02 24
+3E E0 00 08 87 12 C0 CC DA CA 2A C4 0E DA 04 47
+4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
 @FFFE
-D6 D5
+9E D2
 q
index c2670e4..5efdeb4 100644 (file)
 @1800
-10 00 08 00 A1 F7 80 3E 05 00 18 00 18 DD CC D2
-2C 01 7B B0 FC C7 0E C8
+10 00 08 00 A1 F7 80 3E 05 00 18 00 AC DA 0C D1
+2D 01 6B B0 B6 C6 C8 C6
 @C400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C4
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C4 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C4 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C4 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C4 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C4 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C4 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C4 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C4 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C5 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C4 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C5 02 31 2D 00
-1E 83 30 4D D8 C4 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C5
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C5 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C5 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C4 01 3E 3E 8F F4 3B EB 37 0E C5 02 42 4C 00
-85 12 20 00 AC C5 04 42 41 53 45 00 85 12 DC 21
-C8 C4 05 53 54 41 54 45 85 12 BE 21 96 C5 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 C5 06 55 4D 2F
-4D 4F 44 00 30 12 62 C4 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C4 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C5
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 C5 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 C6
-02 23 53 00 87 12 32 C6 6A C6 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C6 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C5 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C5
-02 44 2E 00 87 12 D2 C5 44 C4 B0 C4 4C C5 64 C6
-BC C4 A2 C6 7E C6 14 C9 DC C8 2A C4 DC C5 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C4
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C6 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 C4
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A C6
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C6 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C6 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C5 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C7 03 4B 45 59 30 40 A0 C7
-18 42 0C 05 2F 83 8F 4E 00 00 B0 12 FC C7 92 B3
-1C 05 FD 27 1E 42 0C 05 B0 12 0E C8 30 4D 00 C7
-06 41 43 43 45 50 54 00 3C 40 6A C8 3B 40 34 C8
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C8 92 B3 1C 05 05 24 18 42 0C 05 38 90
-0A 00 04 20 21 53 39 40 22 C8 4D 15 A2 B3 1C 05
-FD 27 B2 40 11 00 0E 05 F2 C2 03 02 30 41 B2 40
-13 00 0E 05 F2 D2 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C8 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 0C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 1C 05 FD 27 82 48 0E 05 30 4D 60 C8
-2D 83 92 B3 1C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C6 04 45 4D 49 54 00 30 40 8C C8 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 C8 04 45 43 48
-4F 00 B2 40 82 48 58 C8 82 43 DE 21 30 4D E0 C6
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C8 92 43
-DE 21 30 4D 9C C6 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C8 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C8 EF 3F 00 C9
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C7 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C9 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C9 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C7 02 43
-52 00 30 40 46 C9 87 12 52 C9 02 0D 0A 00 14 C9
-2A C4 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C8 82 53 22 00 82 43 B4 21
-87 12 34 C4 52 C9 0A CC 34 C4 22 00 B6 C9 80 C9
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 C8 82 2E
-22 00 87 12 6C C9 34 C4 14 C9 0A CC 2A C4 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C4
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C4
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C4
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C4 02 3E 52 00 0E 12 3E 4F 30 4D 70 C4 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C4 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C4 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C4
+01 21 BE 4F 00 00 3E 4F 30 4D CC C4 02 30 3D 00
+1E 83 0E 7E 30 4D FC C4 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C5 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 C5 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 C5 02 23 53 00 87 12 88 C5 C0 C5
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C5
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C4 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C5 34 C4 86 C4 D4 C4 BA C5
+92 C4 F8 C5 D4 C5 D6 C7 7E CB 82 C7 2A C4 22 C5
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C5 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C6 18 42 0C 05 2F 83 8F 4E
+00 00 B0 12 B6 C6 92 B3 1C 05 FD 27 1E 42 0C 05
+B0 12 C8 C6 30 4D A2 B3 1C 05 FD 27 B2 40 11 00
+0E 05 F2 C2 03 02 30 41 B2 40 13 00 0E 05 F2 D2
+03 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C6
+B0 12 B6 C6 12 D2 0A 18 F9 3F F0 C4 06 41 43 43
+45 50 54 00 3C 40 64 C7 3B 40 2E C7 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C7
+92 B3 1C 05 05 24 18 42 0C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 0C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 82 48 0E 05 30 4D 5A C7 2D 83 92 B3 1C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C4 04 45 4D 49
+54 00 30 40 86 C7 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C C7 04 45 43 48 4F 00 B2 40 82 48
+52 C7 82 43 DE 21 30 4D 32 C6 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C7 92 43 DE 21 30 4D 20 C6
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C7
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C7 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C5
+02 43 52 00 30 40 08 C8 87 12 1E C8 02 0D 0A 00
+D6 C7 2A C4 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C5 82 53 22 00 82 43 B4 21 87 12 14 C8
+1E C8 EC CA 14 C8 22 00 80 C8 4C C8 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA C7 82 2E 22 00 87 12 38 C8 14 C8 D6 C7
+EC CA 2A C4 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,306 +86,285 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C4 34 40 00 C4 30 4D 0E C9 03 55
+00 00 35 40 0E C4 34 40 00 C4 30 4D D0 C7 03 55
 4D 2A 2C 4F 0B 43 09 43 08 43 1A 43 0E BA 02 24
 09 5C 08 6B 0C 5C 0B 6B 0A 5A F8 2B 8F 49 00 00
-0E 48 30 4D A2 C5 07 3E 4E 55 4D 42 45 52 2C 4F
+0E 48 30 4D 82 C4 07 3E 4E 55 4D 42 45 52 2C 4F
 0B 4E 1A 42 DC 21 68 4C 78 80 30 00 78 90 0A 00
 05 28 78 80 07 00 78 90 0A 00 1F 28 08 9A 22 C3
-1C 2C 5D 15 1C 4F 02 00 0E 4A 3D 40 D0 CA D2 3F
-D2 CA 81 49 02 00 1C 4F 04 00 1E 41 04 00 3D 40
-E4 CA C8 3F E6 CA 39 51 3E 61 8F 49 04 00 8F 4E
+1C 2C 5D 15 1C 4F 02 00 0E 4A 3D 40 B0 C9 D2 3F
+B2 C9 81 49 02 00 1C 4F 04 00 1E 41 04 00 3D 40
+C4 C9 C8 3F C6 C9 39 51 3E 61 8F 49 04 00 8F 4E
 02 00 3A 17 1C 53 1B 83 D6 23 8F 4C 00 00 0E 4B
-30 4D 1B 42 DC 21 0C 43 2D 15 3D 40 4E CB 0A 4B
-3F 82 8F 4E 06 00 8F 43 04 00 8F 43 02 00 0C 4E
-7B 4C 68 4C 78 90 2D 00 04 28 BE 23 B1 43 02 00
-E1 3F 2A 43 78 80 25 00 07 24 3A 52 68 53 04 24
-3A 40 10 00 58 83 AF 23 1C 53 1B 83 EA 3F 50 CB
-31 24 2D 83 78 90 28 00 CD 27 32 B0 00 02 2A 20
-32 D0 00 02 78 90 F7 00 C5 27 78 90 F5 00 22 20
-09 43 8F 49 02 00 5B 83 09 4B 09 5C 69 49 79 80
-30 00 79 90 0A 00 05 28 79 80 07 00 79 90 0A 00
-0A 28 09 9A 08 2C 8F 49 00 00 0E 4A 2C 15 B0 12
-E8 C5 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-0E 4B 4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0
-00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00
-04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00
-BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02
-01 20 2F 53 30 4D AC C8 07 45 58 45 43 55 54 45
-0A 4E 3E 4F 00 4A 26 C5 01 2C 1A 42 C6 21 A2 53
-C6 21 8A 4E 00 00 3E 4F 30 4D 08 CC 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52
-C6 21 BA 40 34 C4 00 00 8A 4E 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00
-0E 49 EB 3F 30 4D 3E C9 05 43 4F 55 4E 54 2F 83
-1E 53 8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21
-B2 4F C2 21 3E 4F 82 43 C4 21 30 4D 87 12 6C CC
-B0 C5 B6 C9 86 CC 3D 40 8E CC C1 22 3C 3E 90 CC
-0A 4E 3E 4F 3D 40 A6 CC 34 27 3D 40 80 CC 1A E2
-BE 21 B3 27 AD 23 A8 CC 3E 4F 3D 40 80 CC BA 23
-DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
-72 CF CD 3F F8 CB 08 45 56 41 4C 55 41 54 45 00
-39 40 C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A C4
-7C CC E4 CC B2 41 C4 21 B2 41 C2 21 B2 41 C0 21
-3D 41 30 4D 6C C5 04 51 55 49 54 00 82 43 08 18
-31 40 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12
-2A C4 42 C9 92 C8 DC C8 7C CC DE C4 70 C5 52 C9
-0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 70 CD
-34 C4 30 FF F2 C6 8A C5 52 C9 0A 46 52 41 4D 20
-66 75 6C 6C 21 00 70 CD 24 C7 12 CD C0 C7 05 41
-42 4F 52 54 3F 40 80 20 D1 3F 4E CD 86 41 42 4F
-52 54 22 00 87 12 6C C9 34 C4 70 CD 0A CC 2A C4
-8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 32 D5
-B0 12 FC C7 92 C3 1C 05 38 40 A0 AA 39 42 09 59
-03 43 19 83 FD 23 18 83 F9 23 92 B3 1C 05 F2 23
-87 12 AC D4 34 C4 DE 21 F2 C4 B2 C8 52 C9 04 1B
-5B 37 6D 00 14 C9 54 C4 28 C7 CC CD 42 C9 52 C9
-05 6C 69 6E 65 3A 14 C9 40 C5 D2 C6 14 C9 52 C9
-04 1B 5B 30 6D 00 14 C9 54 CD 00 00 83 5B 27 5D
-87 12 F2 CD 34 C4 34 C4 0A CC 0A CC 2A C4 08 CA
-01 27 87 12 B0 C5 B6 C9 0E CA 28 C7 00 CE 2A C4
-B0 CC CE C5 81 5C 92 42 C0 21 C4 21 30 4D DC CD
-81 5B 82 43 BE 21 30 4D 04 CE 01 5D B2 43 BE 21
-30 4D BE 4F 02 00 3E 4F 30 4D 72 C7 82 49 53 00
-87 12 C8 C5 F2 C4 28 C7 44 CE E0 CD 34 C4 22 CE
-0A CC 2A C4 F2 CD 22 CE 2A C4 2C CE 09 49 4D 4D
-45 44 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00
-30 4D 68 C9 87 52 45 43 55 52 53 45 19 42 C6 21
-99 42 BA 21 00 00 A2 53 C6 21 30 4D F6 CC 88 50
-4F 53 54 50 4F 4E 45 00 87 12 B0 C5 B6 C9 0E CA
-54 C4 28 C7 00 CE 70 C5 28 C7 A8 CE 34 C4 34 C4
-0A CC 0A CC 34 C4 0A CC 0A CC 2A C4 10 CE 81 3B
-82 93 BE 21 A8 27 87 12 34 C4 2A C4 0A CC 46 CF
-12 CE 2A C4 AE CE 07 3A 4E 4F 4E 41 4D 45 2F 83
-8F 4E 00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40
-02 02 B0 12 32 CF BA 40 87 12 FC FF A2 83 C6 21
-B2 43 BE 21 82 4F BC 21 30 4D C6 CE 01 3A 30 12
-E6 CE 87 12 92 C9 B0 C5 B6 C9 0C CF 3D 41 08 4E
-7A 4E 5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0
-1E 00 09 5E 3E 4F BA 40 30 40 00 00 BA 40 F8 CE
-02 00 82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52
+30 4D 32 C0 00 02 1B 42 DC 21 0C 43 2D 15 3D 40
+32 CA 0A 4B 3F 82 8F 4E 06 00 8F 43 04 00 8F 43
+02 00 0C 4E 7B 4C 68 4C 78 90 2D 00 04 28 BC 23
+B1 43 02 00 DF 3F 2A 43 78 80 25 00 07 24 3A 52
+68 53 04 24 3A 40 10 00 58 83 AD 23 1C 53 1B 83
+EA 3F 34 CA 2E 24 2D 83 78 90 28 00 CB 27 32 D0
+00 02 78 90 F7 00 C6 27 78 90 F5 00 22 20 09 43
+8F 49 02 00 5B 83 09 4B 09 5C 69 49 79 80 30 00
+79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
+09 9A 08 2C 8F 49 00 00 0E 4A 2C 15 B0 12 3E C5
+2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4B
+4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
+3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
+BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
+00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
+2F 53 30 4D 7E C6 04 48 45 52 45 00 2F 83 8F 4E
+00 00 1E 42 C6 21 30 4D B6 C4 01 2C 1A 42 C6 21
+8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D EC C6 05 41
+4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D A6 C7 07 45
+58 45 43 55 54 45 0A 4E 3E 4F 00 4A EA CA 87 4C
+49 54 45 52 41 4C 82 93 BE 21 0C 24 1A 42 C6 21
+A2 52 C6 21 BA 40 14 C8 00 00 8A 4E 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 06 24 19 4A 02 00 8A 4E
+02 00 0E 49 EB 3F 30 4D 00 C8 05 43 4F 55 4E 54
+2F 83 1E 53 8F 4E 00 00 5E 4E FF FF 30 4D 82 4E
+C0 21 B2 4F C2 21 3E 4F 82 43 C4 21 30 4D 85 12
+20 00 87 12 6E CB 7E CB 80 C8 8C CB 3D 40 94 CB
+AE 22 64 3E 96 CB 0A 4E 3E 4F 3D 40 AC CB 21 27
+3D 40 86 CB 1A E2 BE 21 A1 27 B5 23 AE CB 3E 4F
+3D 40 86 CB B8 23 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 62 CE CB 3F 0E CB 08 45 56 41
+4C 55 41 54 45 00 39 40 C0 21 3C 49 3B 49 3A 49
+3D 15 B0 12 2A C4 82 CB EA CB B2 41 C4 21 B2 41
+C2 21 B2 41 C0 21 3D 41 30 4D 85 12 BE 21 08 C5
+04 51 55 49 54 00 82 43 08 18 31 40 E0 20 B2 40
+00 20 00 20 82 43 BE 21 B0 12 2A C4 04 C8 8C C7
+7E CB 82 C7 82 CB A4 C4 0C C5 1E C8 0C 73 74 61
+63 6B 20 65 6D 70 74 79 21 00 7C CC 14 C8 30 FF
+DC CA 26 C5 1E C8 0A 46 52 41 4D 20 66 75 6C 6C
+21 00 7C CC 3C C6 1C CC FE CA 05 41 42 4F 52 54
+3F 40 80 20 D0 3F 5A CC 86 41 42 4F 52 54 22 00
+87 12 38 C8 14 C8 7C CC EC CA 2A C4 8F 93 02 00
+03 20 2F 52 3E 4F 30 4D B0 12 04 D2 B0 12 B6 C6
+92 C3 1C 05 38 40 A0 AA 39 42 03 43 19 83 FD 23
+18 83 FA 23 92 B3 1C 05 F3 23 87 12 7E D1 14 C8
+DE 21 EA C4 AC C7 1E C8 04 1B 5B 37 6D 00 D6 C7
+58 C4 40 C6 D6 CC 04 C8 1E C8 05 6C 69 6E 65 3A
+D6 C7 D0 C4 24 C6 D6 C7 1E C8 04 1B 5B 30 6D 00
+D6 C7 60 CC 00 00 83 5B 27 5D 87 12 FC CC 14 C8
+14 C8 EC CA EC CA 2A C4 E8 C8 01 27 87 12 7E CB
+80 C8 EE C8 40 C6 0A CD 2A C4 B6 CB 32 C5 81 5C
+92 42 C0 21 C4 21 30 4D E6 CC 81 5B 82 43 BE 21
+30 4D 0E CD 01 5D B2 43 BE 21 30 4D BE 4F 02 00
+3E 4F 30 4D D6 CA 82 49 53 00 87 12 FA CB EA C4
+40 C6 4E CD EA CC 14 C8 2C CD EC CA 2A C4 FC CC
+2C CD 2A C4 36 CD 09 49 4D 4D 45 44 49 41 54 45
+1A 42 B6 21 FA D0 80 00 00 00 30 4D 00 CC 88 50
+4F 53 54 50 4F 4E 45 00 87 12 7E CB 80 C8 EE C8
+58 C4 40 C6 0A CD 0C C5 40 C6 98 CD 14 C8 14 C8
+EC CA EC CA 14 C8 EC CA EC CA 2A C4 1A CD 81 3B
+82 93 BE 21 B5 27 87 12 14 C8 2A C4 EC CA 36 CE
+1C CD 2A C4 9E CD 07 3A 4E 4F 4E 41 4D 45 30 12
+DC CD 2F 83 8F 4E 00 00 1E 42 C6 21 1E B3 0E 63
+0A 4E 39 40 00 02 38 40 02 02 21 3C BA 40 87 12
+FC FF A2 83 C6 21 B2 43 BE 21 30 4D B6 CD 01 3A
+30 12 DC CD 92 B3 C6 21 A2 63 C6 21 87 12 7E CB
+80 C8 04 CE 3D 41 08 4E 7A 4E 5A D3 5A 53 0A 58
+19 42 DA 21 6E 4E 3E F0 1E 00 09 5E 3E 4F 82 48
+B6 21 82 49 B8 21 82 4A BA 21 82 4F BC 21 2A 52
 82 4A C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21
 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12
-52 C9 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
-68 21 7C CD B0 C9 08 56 41 52 49 41 42 4C 45 00
-B0 12 02 CF BA 40 86 12 FC FF E4 3F 58 CC 08 43
-4F 4E 53 54 41 4E 54 00 B0 12 02 CF BA 40 85 12
-FC FF 8A 4E FE FF 3E 4F D5 3F 8E CF 06 43 52 45
-41 54 45 00 B0 12 02 CF BA 40 85 12 FC FF 8A 4A
-FE FF C8 3F C6 CC 05 44 4F 45 53 3E 1A 42 BA 21
-BA 40 84 12 00 00 8A 4D 02 00 3D 41 30 4D C6 CF
-05 44 45 46 45 52 30 12 54 CF 8B 3F 96 CA 05 3E
-42 4F 44 59 2E 52 30 4D AC CF 04 43 4F 44 45 00
-B0 12 02 CF 2A 82 82 4A C6 21 87 12 F4 CE D6 D2
-A8 D2 2A C4 FA CF 07 43 4F 44 45 4E 4E 4D 87 12
-CE CE 12 CE 04 D0 2A C4 00 00 07 45 4E 44 43 4F
-44 45 87 12 F0 D2 46 CF 2A C4 5C CD 03 41 53 4D
-92 42 DA 21 EC 21 B2 40 AC D2 DA 21 D9 3F 2A D0
-06 45 4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F
-00 00 05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12
-00 00 A2 53 C6 21 B2 43 BE 21 30 40 F0 D2 00 00
-05 4C 4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00
-BA 40 2A C4 02 00 A2 52 C6 21 ED 3F 4C CE 85 48
-49 32 4C 4F 87 12 F2 C6 CE D0 0A CC 12 CE D6 D2
-A8 D2 2A C4 9E D0 82 49 46 00 2F 83 8F 4E 00 00
-1E 42 C6 21 A2 52 C6 21 BE 40 28 C7 00 00 2E 53
-30 4D E0 CF 84 45 4C 53 45 00 A2 52 C6 21 1A 42
-C6 21 BA 40 24 C7 FC FF 8E 4A 00 00 2A 83 0E 4A
-30 4D 6E CA 84 54 48 45 4E 00 9E 42 C6 21 00 00
-3E 4F 30 4D 16 D0 85 42 45 47 49 4E 30 40 F2 C6
-F4 D0 85 55 4E 54 49 4C 39 40 28 C7 A2 52 C6 21
-1A 42 C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D
-3C D0 85 41 47 41 49 4E 39 40 24 C7 EF 3F 76 CF
-85 57 48 49 4C 45 87 12 BA D0 78 C4 2A C4 64 CE
-86 52 45 50 45 41 54 00 87 12 38 D1 FA D0 2A C4
-D4 D0 82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21
-1E 42 C6 21 BE 40 3C C7 FE FF A2 53 00 20 1A 42
-00 20 8A 43 00 00 30 4D 1C CC 84 4C 4F 4F 50 00
-39 40 5E C7 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF
-8A 4E FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93
-03 24 8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C7 85 2B
-4C 4F 4F 50 39 40 4C C7 E5 3F 8A D1 85 4C 45 41
-56 45 1A 42 C6 21 BA 40 6E C7 00 00 BA 40 24 C7
-02 00 B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42
-00 20 89 4A 00 00 30 4D CC D1 04 4D 4F 56 45 00
-0A 4E 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24
-06 2C F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A
-09 5A 19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D
-40 D1 0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12
-B4 CF 34 C4 10 00 34 C4 00 00 3C C7 34 C4 00 00
-0A CC 5E C7 4C D2 F2 C6 34 C4 C8 21 44 C4 F2 C4
-0A CC FA C4 CC CF 34 C4 CA 21 FA C4 2A C4 F0 CD
-05 46 4F 52 54 48 84 12 66 D2 D0 D2 04 D6 0E D3
-70 D2 B6 D0 BE D1 3A D4 00 D3 D0 D4 EA D4 12 D1
-76 D5 00 00 0E D4 1A CE EE CF 00 00 32 D1 09 41
-53 53 45 4D 42 4C 45 52 84 12 66 D2 02 DC 6A DC
-B6 DB D4 DC 7C DB F8 DC A8 D8 00 00 72 DB 22 DC
-D4 DB 12 DC B8 D9 00 00 00 00 06 DD 9A D2 9E D2
-04 41 4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40
-CC 21 9D 3F 7E CE 08 50 52 45 56 49 4F 55 53 00
-3A 40 0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E C9
-04 4F 4E 4C 59 00 82 43 CC 21 30 4D 62 D1 0B 44
-45 46 49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21
-30 4D 06 D1 07 43 4F 4D 50 41 52 45 0C 4E 38 4F
-3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83
-07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D
-1E 43 30 4D FC CE 86 5B 54 48 45 4E 5D 00 30 4D
-56 D3 86 5B 45 4C 53 45 5D 00 87 12 34 C4 00 00
-36 C5 B0 C5 B6 C9 5E CC 44 C4 28 C7 D0 D3 8A C4
-8A C4 52 C9 06 5B 54 48 45 4E 5D 00 2C D3 32 C7
-9E D3 36 C9 40 C5 54 C4 32 C7 72 D3 2A C4 8A C4
-8A C4 52 C9 06 5B 45 4C 53 45 5D 00 2C D3 32 C7
-BE D3 36 C9 40 C5 54 C4 32 C7 70 D3 2A C4 52 C9
-04 5B 49 46 5D 00 2C D3 32 C7 72 D3 24 C7 70 D3
-36 C9 52 C9 05 0D 0A 6B 6F 20 14 C9 92 C8 6C CC
-24 C7 72 D3 62 D3 84 5B 49 46 5D 00 0E 93 3E 4F
-BC 27 30 4D E6 D3 89 5B 44 45 46 49 4E 45 44 5D
-87 12 B0 C5 B6 C9 0E CA 6C C4 2A C4 F6 D3 8B 5B
-55 4E 44 45 46 49 4E 45 44 5D 87 12 B0 C5 B6 C9
-0E CA 6C C4 64 C5 2A C4 2A D4 3D 41 B2 4E 0E 18
-A2 4E 0C 18 3E 4F 44 3C FA D1 06 4D 41 52 4B 45
-52 00 B0 12 02 CF BA 40 84 12 FC FF BA 40 28 D4
-FE FF 9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52
-C6 21 30 40 4C CF 76 D2 06 D3 1A D3 6E D4 3A 4E
-82 4A C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A
-08 49 29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00
-1D 83 F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D
-E6 D2 09 50 57 52 5F 53 54 41 54 45 84 12 66 D4
-CC D2 18 DD 50 D1 09 52 53 54 5F 53 54 41 54 45
-92 42 0E 18 B0 D4 92 42 0C 18 B2 D4 EF 3F A2 D4
-08 50 57 52 5F 48 45 52 45 00 92 42 C8 21 B0 D4
-92 42 C6 21 B2 D4 30 4D B6 D4 08 52 53 54 5F 48
-45 52 45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18
-EC 3F 32 D2 04 57 49 50 45 00 39 40 10 00 29 83
-B9 43 80 FF FC 23 B2 40 26 C8 24 C8 B2 40 80 D5
-7E D5 B2 40 CC D2 0E 18 B2 40 18 DD 0C 18 30 12
-C0 D4 B2 40 8C C8 8A C8 B2 40 46 C9 44 C9 B2 40
-A0 C7 9E C7 B2 40 18 00 0A 18 37 40 1A C4 36 40
-BC C4 35 40 0E C4 34 40 00 C4 39 40 10 00 29 83
-89 43 E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00
-B4 21 30 41 04 D5 04 57 41 52 4D 00 30 40 80 D5
-3D 40 B4 D5 92 C3 30 01 1E 42 08 18 0E 93 11 24
-D2 B3 00 02 02 20 3E E3 1E 53 F2 D0 03 00 0A 02
-3E 90 0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27
-87 2F 30 4D 52 C9 06 0D 1B 5B 37 6D 23 00 14 C9
-E2 C6 52 C9 1F 46 61 73 74 46 6F 72 74 68 20 56
-33 30 30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72
-65 6E 73 20 14 C9 34 C4 80 FF F2 C6 28 C5 D2 C6
-52 C9 0B 62 79 74 65 73 20 66 72 65 65 20 24 C7
-CC CD 24 D3 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
-B2 40 04 A5 20 01 B2 40 88 5A CC 01 B2 D0 00 08
-04 02 B2 D3 06 02 B2 43 02 02 B2 40 00 01 24 02
-B2 40 FF FE 22 02 B2 D0 FF FE 26 02 B2 43 42 02
-B2 D3 46 02 B2 43 62 02 B2 D3 66 02 F2 40 A5 00
-A1 01 F2 40 10 00 A0 01 D2 43 A1 01 B2 40 00 A5
-60 01 B2 40 FF 1E 80 01 B2 40 BA 00 82 01 B2 40
-E8 01 84 01 39 40 00 01 82 43 88 01 92 D2 5E 01
-08 18 38 40 59 14 18 83 FE 23 19 83 FA 23 39 40
-00 08 29 83 89 43 00 20 FC 23 39 40 1E 00 29 83
-B9 40 16 D6 E2 FF FB 23 B2 40 2C C8 EC FF B2 40
-81 00 00 05 92 42 02 18 06 05 92 42 04 18 08 05
-92 C3 00 05 92 D3 1A 05 3F 40 80 20 31 40 E0 20
-30 12 7C D5 37 3F 38 40 C0 21 39 48 2A 48 09 5A
-1A 52 C4 21 09 9A 03 24 7E 9A FC 27 1A 83 0E 4A
-2A 88 82 4A C4 21 30 4D 1C 15 B0 12 2A C4 B6 C9
-0E CA 32 C7 0E D7 02 CB 28 C7 00 CE 30 D7 10 D7
-29 4E 39 90 86 12 02 20 2E 53 0A 3C 39 90 85 12
-03 20 1E 4E 02 00 04 3C 39 90 84 12 01 20 2E 52
-1B 17 30 41 3E 40 28 00 B0 12 F8 D6 19 42 C6 21
-A2 53 C6 21 89 4E 00 00 3E 40 29 00 1C 15 12 12
-C4 21 92 53 C4 21 B0 12 2A C4 B6 C9 02 CB 28 C7
-6E D7 64 D7 21 53 3E 90 10 00 83 2D E1 2B 70 D7
-B2 41 C4 21 DD 3F 87 12 B0 C5 D6 D6 7E D7 0C 43
-1B 42 C6 21 A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00
-2D 20 92 53 C4 21 B0 12 F8 D6 0E 93 03 20 3C 40
-00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C 2E 93
-03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40 20 02
-12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93 03 20
-3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 21 A2 53
-C6 21 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00
-07 20 3C 40 10 02 92 53 C4 21 B0 12 F8 D6 ED 3F
-7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12
-4C D7 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 4C D7
-92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E
-DA 3F B0 12 4C D7 FA 23 3C 50 10 00 B0 12 34 D7
-EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 87 12 B0 C5
-D6 D6 54 D8 FE 90 26 00 00 00 3E 40 20 00 03 20
-3C 50 82 00 C8 3F B0 12 4C D7 E1 23 3C 50 80 00
-B0 12 34 D7 DC 3F 1C C8 04 52 45 54 49 00 87 12
-34 C4 00 13 0A CC 2A C4 34 C4 2C 00 76 D7 4C D8
-92 D8 2E 4E 0E DC 09 4B A4 3F 80 D0 03 4D 4F 56
-84 12 88 D8 00 40 9C D8 05 4D 4F 56 2E 42 84 12
-88 D8 40 40 00 00 03 41 44 44 84 12 88 D8 00 50
-B6 D8 05 41 44 44 2E 42 84 12 88 D8 40 50 C2 D8
-04 41 44 44 43 00 84 12 88 D8 00 60 D0 D8 06 41
-44 44 43 2E 42 00 84 12 88 D8 40 60 78 D8 04 53
-55 42 43 00 84 12 88 D8 00 70 EE D8 06 53 55 42
-43 2E 42 00 84 12 88 D8 40 70 FC D8 03 53 55 42
-84 12 88 D8 00 80 0C D9 05 53 55 42 2E 42 84 12
-88 D8 40 80 62 D0 03 43 4D 50 84 12 88 D8 00 90
-26 D9 05 43 4D 50 2E 42 84 12 88 D8 40 90 50 D0
-04 44 41 44 44 00 84 12 88 D8 00 A0 40 D9 06 44
-41 44 44 2E 42 00 84 12 88 D8 40 A0 32 D9 03 42
-49 54 84 12 88 D8 00 B0 5E D9 05 42 49 54 2E 42
-84 12 88 D8 40 B0 6A D9 03 42 49 43 84 12 88 D8
-00 C0 78 D9 05 42 49 43 2E 42 84 12 88 D8 40 C0
-84 D9 03 42 49 53 84 12 88 D8 00 D0 92 D9 05 42
-49 53 2E 42 84 12 88 D8 40 D0 00 00 03 58 4F 52
-84 12 88 D8 00 E0 AC D9 05 58 4F 52 2E 42 84 12
-88 D8 40 E0 DE D8 03 41 4E 44 84 12 88 D8 00 F0
-C6 D9 05 41 4E 44 2E 42 84 12 88 D8 40 F0 B0 C5
-76 D7 E4 D9 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F 18 D9 03 52 52 43 84 12 DE D9 00 10
-F6 D9 05 52 52 43 2E 42 84 12 DE D9 40 10 02 DA
-04 53 57 50 42 00 84 12 DE D9 80 10 10 DA 03 52
-52 41 84 12 DE D9 00 11 1E DA 05 52 52 41 2E 42
-84 12 DE D9 40 11 2A DA 03 53 58 54 84 12 DE D9
-80 11 00 00 04 50 55 53 48 00 84 12 DE D9 00 12
-44 DA 06 50 55 53 48 2E 42 00 84 12 DE D9 40 12
-9E D9 04 43 41 4C 4C 00 84 12 DE D9 80 12 1A 53
-0E 4A 87 12 E2 C6 52 C9 0D 6F 75 74 20 6F 66 20
-62 6F 75 6E 64 73 7C CD B0 C5 D6 D6 8E DA 92 53
-C4 21 3E 40 2C 00 B0 12 2A C4 B6 C9 02 CB 28 C7
-00 CE 42 D8 A6 DA 0A 4E 3E 4F 1A 83 E0 33 29 4E
-59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
-10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06
-8F 3F 38 DA 04 52 52 43 4D 00 84 12 88 DA 50 00
-D4 DA 04 52 52 41 4D 00 84 12 88 DA 50 01 E2 DA
-04 52 4C 41 4D 00 84 12 88 DA 50 02 F0 DA 04 52
-52 55 4D 00 84 12 88 DA 50 03 52 DA 05 50 55 53
-48 4D 84 12 88 DA 00 15 0C DB 04 50 4F 50 4D 00
-84 12 88 DA 00 17 85 12 00 3C FE DA 03 53 3E 3D
-85 12 00 38 2C DB 02 53 3C 00 85 12 00 34 1A DB
-03 30 3E 3D 85 12 00 30 40 DB 02 30 3C 00 85 12
-00 30 00 00 02 55 3C 00 85 12 00 2C 54 DB 03 55
-3E 3D 85 12 00 28 4A DB 03 30 3C 3E 85 12 00 24
-68 DB 02 30 3D 00 85 12 00 20 00 00 02 49 46 00
-1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D
-5E DB 04 54 48 45 4E 00 1A 42 C6 21 08 4E 3E 4F
-09 48 29 53 0A 89 0A 11 3A 90 00 02 61 2F 88 DA
-00 00 30 4D 4E D9 04 45 4C 53 45 00 1A 42 C6 21
-BA 40 00 3C 00 00 A2 53 C6 21 2F 83 8F 4A 00 00
-E3 3F 92 DB 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
-19 42 C6 21 2A 83 0A 89 0A 11 3A 90 00 FE 40 3B
-3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D
-D2 D9 05 41 47 41 49 4E 87 12 26 DB DA DB 2A C4
-00 00 05 57 48 49 4C 45 87 12 80 DB 78 C4 2A C4
-36 DB 06 52 45 50 45 41 54 00 87 12 26 DB DA DB
-98 DB 2A C4 36 DC 3D 41 2E 4E 08 4E 3E 4F 2A 48
-0A 93 88 43 00 00 CA 23 98 42 C6 21 00 00 30 4D
-62 DA 03 42 57 31 84 12 34 DC E0 21 52 DC 03 42
-57 32 84 12 34 DC E2 21 5E DC 03 42 57 33 84 12
-34 DC E4 21 76 DC 3D 41 1A 42 C6 21 2E 4E 28 4E
-08 93 8E 43 00 00 8B 23 BA 4F 00 00 A2 53 C6 21
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12
-74 DC E6 21 9A DC 03 46 57 32 84 12 74 DC E8 21
-A6 DC 03 46 57 33 84 12 74 DC EA 21 3E 90 00 30
+1E C8 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 88 CC CC CB 05 44 45 46 45 52 B0 12 F4 CD
+BA 40 30 40 FC FF BA 40 EA CD FE FF E3 3F 5A CB
+06 43 52 45 41 54 45 00 B0 12 F4 CD BA 40 85 12
+FC FF 8A 4A FE FF D6 3F 66 CE 05 44 4F 45 53 3E
+1A 42 BA 21 BA 40 84 12 00 00 8A 4D 02 00 3D 41
+30 4D 76 C9 05 3E 42 4F 44 59 2E 52 30 4D 80 CE
+04 43 4F 44 45 00 B0 12 F4 CD A2 82 C6 21 87 12
+0E D1 E8 D0 2A C4 C0 CE 07 43 4F 44 45 4E 4E 4D
+B0 12 C2 CD F2 3F 00 00 07 45 4E 44 43 4F 44 45
+87 12 1C D1 36 CE 2A C4 68 CC 03 41 53 4D B2 40
+EC D0 DA 21 E0 3F E8 CE 06 45 4E 44 41 53 4D 00
+87 12 F0 CE 30 D1 2A C4 00 00 05 43 4F 4C 4F 4E
+1A 42 C6 21 BA 40 87 12 00 00 A2 53 C6 21 B2 43
+BE 21 30 40 1C D1 00 00 05 4C 4F 32 48 49 1A 42
+C6 21 BA 40 B0 12 00 00 BA 40 2A C4 02 00 A2 52
+C6 21 ED 3F 56 CD 85 48 49 32 4C 4F 87 12 DC CA
+86 CF EC CA 1C CD 0E D1 E8 D0 2A C4 56 CF 82 49
+46 00 2F 83 8F 4E 00 00 1E 42 C6 21 A2 52 C6 21
+BE 40 40 C6 00 00 2E 53 30 4D 9A CE 84 45 4C 53
+45 00 A2 52 C6 21 1A 42 C6 21 BA 40 3C C6 FC FF
+8E 4A 00 00 2A 83 0E 4A 30 4D 4E C9 84 54 48 45
+4E 00 9E 42 C6 21 00 00 3E 4F 30 4D D8 CE 85 42
+45 47 49 4E 30 40 DC CA AC CF 85 55 4E 54 49 4C
+39 40 40 C6 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF
+8A 4E FE FF 3E 4F 30 4D FA CE 85 41 47 41 49 4E
+39 40 3C C6 EF 3F 7A C8 85 57 48 49 4C 45 87 12
+72 CF 76 C4 2A C4 34 C8 86 52 45 50 45 41 54 00
+87 12 F0 CF B2 CF 2A C4 8C CF 82 44 4F 00 2F 83
+8F 4E 00 00 A2 53 C6 21 1E 42 C6 21 BE 40 54 C6
+FE FF A2 53 00 20 1A 42 00 20 8A 43 00 00 30 4D
+1E CB 84 4C 4F 4F 50 00 39 40 76 C6 A2 52 C6 21
+1A 42 C6 21 8A 49 FC FF 8A 4E FE FF 1E 42 00 20
+A2 83 00 20 2E 4E 0E 93 03 24 8E 4A 00 00 F6 3F
+3E 4F 30 4D 90 C6 85 2B 4C 4F 4F 50 39 40 64 C6
+E5 3F 42 D0 04 4D 4F 56 45 00 0A 4E 38 4F 39 4F
+3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49 00 00
+18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83 18 83
+E8 49 00 00 1A 83 FA 23 30 4D 14 C8 CA 21 F2 C4
+2A C4 84 12 BA D0 EA CF 92 D3 1A D0 FA CC 6E CF
+76 D0 A6 D4 64 C8 A2 D1 BC D1 CA CF 3C D2 00 00
+78 D4 24 CD B4 CE 00 00 84 12 BA D0 C4 D9 26 DA
+78 D9 9A DA 3E D9 00 00 6E D6 00 00 34 D9 E4 D9
+96 D9 D4 D9 7E D7 00 00 00 00 76 DA E6 D0 3A 40
+0C 00 39 40 CA 21 38 40 CC 21 C6 3F 3A 40 0E 00
+39 40 CC 21 38 40 CA 21 B9 3F 82 43 CC 21 30 4D
+92 42 CA 21 DA 21 30 4D C2 D0 2A D1 30 D1 40 D1
+3A 4E 82 4A C8 21 2E 4E 82 4E C6 21 3D 40 10 00
+09 4A 08 49 29 83 18 48 FE FF 0E 98 FC 2B 89 48
+00 00 1D 83 F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41
+30 4D 6E CD 09 50 57 52 5F 53 54 41 54 45 84 12
+38 D1 0C D1 AC DA 08 D0 09 52 53 54 5F 53 54 41
+54 45 92 42 0E 18 82 D1 92 42 0C 18 84 D1 EF 3F
+74 D1 08 50 57 52 5F 48 45 52 45 00 92 42 C8 21
+82 D1 92 42 C6 21 84 D1 30 4D 88 D1 08 52 53 54
+5F 48 45 52 45 00 92 42 C8 21 0E 18 92 42 C6 21
+0C 18 EC 3F F8 CF 04 57 49 50 45 00 39 40 10 00
+29 83 B9 43 80 FF FC 23 B2 40 E0 C6 DE C6 B2 40
+46 D2 44 D2 B2 40 0C D1 0E 18 B2 40 AC DA 0C 18
+30 12 92 D1 B2 40 86 C7 84 C7 B2 40 08 C8 06 C8
+B2 40 98 C6 96 C6 B2 40 18 00 0A 18 37 40 1A C4
+36 40 92 C4 35 40 0E C4 34 40 00 C4 B2 40 0A 00
+DC 21 B2 40 20 00 B4 21 30 41 D6 D1 04 57 41 52
+4D 00 30 40 46 D2 3D 40 7A D2 92 C3 30 01 1E 42
+08 18 0E 93 11 24 D2 B3 00 02 02 20 3E E3 1E 53
+F2 D0 03 00 0A 02 3E 90 0A 00 B8 27 3E 90 16 00
+B5 2F 2E 93 84 27 8D 2F 30 4D 1E C8 06 0D 1B 5B
+37 6D 23 00 D6 C7 34 C6 1E C8 19 46 61 73 74 46
+6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54 68 6F 6F 72
+65 6E 73 20 D6 C7 14 C8 30 FF DC CA B8 C4 24 C6
+1E C8 0A 62 79 74 65 73 20 66 72 65 65 00 3C C6
+D6 CC BE CF 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
+B2 40 04 A5 20 01 7A D2 B2 40 88 5A CC 01 B2 D0
+00 08 04 02 B2 D3 06 02 B2 43 02 02 B2 D0 FF FE
+26 02 B2 43 22 02 B2 43 42 02 B2 D3 46 02 B2 43
+62 02 B2 D3 66 02 F2 40 A5 00 A1 01 F2 40 10 00
+A0 01 D2 43 A1 01 B2 40 00 A5 60 01 B2 40 FF 1E
+80 01 B2 40 BA 00 82 01 B2 40 E8 01 84 01 39 40
+00 01 82 43 88 01 92 D2 5E 01 08 18 38 40 59 14
+18 83 FE 23 19 83 FA 23 39 40 00 08 29 83 89 43
+00 20 FC 23 39 40 1E 00 29 83 B9 40 D8 D2 E2 FF
+FB 23 B2 40 26 C7 EC FF B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 92 C3 00 05 92 D3
+1A 05 3F 40 80 20 31 40 E0 20 30 12 42 D2 43 3F
+C4 D2 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
+39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
+19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
+30 4D EE CD 86 5B 54 48 45 4E 5D 00 30 4D C4 D3
+86 5B 45 4C 53 45 5D 00 87 12 14 C8 00 00 C6 C4
+7E CB 80 C8 60 CB 34 C4 40 C6 3A D4 44 C4 1E C8
+06 5B 54 48 45 4E 5D 00 9A D3 4A C6 0A D4 F8 C7
+D0 C4 58 C4 4A C6 E0 D3 2A C4 44 C4 1E C8 06 5B
+45 4C 53 45 5D 00 9A D3 4A C6 28 D4 F8 C7 D0 C4
+58 C4 4A C6 DE D3 2A C4 1E C8 04 5B 49 46 5D 00
+9A D3 4A C6 E0 D3 3C C6 DE D3 F8 C7 1E C8 05 0D
+0A 6B 6F 20 D6 C7 8C C7 6E CB 3C C6 E0 D3 D0 D3
+84 5B 49 46 5D 00 0E 93 3E 4F BE 27 30 4D 50 D4
+89 5B 44 45 46 49 4E 45 44 5D 87 12 7E CB 80 C8
+EE C8 6A C4 2A C4 60 D4 8B 5B 55 4E 44 45 46 49
+4E 45 44 5D 87 12 7E CB 80 C8 EE C8 6A C4 00 C5
+2A C4 94 D4 3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F
+30 40 92 D1 84 D0 06 4D 41 52 4B 45 52 00 B0 12
+F4 CD BA 40 84 12 FC FF BA 40 92 D4 FE FF 9A 42
+C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21 30 40
+3C CE 1C 15 B0 12 2A C4 80 C8 EE C8 4A C6 E8 D4
+E2 C9 40 C6 0A CD 02 D5 EA D4 39 4E 39 80 86 12
+08 24 19 53 02 20 2E 4E 04 3C 2E 53 19 53 01 24
+2E 82 1B 17 30 41 3E 40 28 00 B0 12 D2 D4 19 42
+C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00 1C 15
+12 12 C4 21 92 53 C4 21 B0 12 2A C4 80 C8 E2 C9
+40 C6 40 D5 36 D5 21 53 3E 90 10 00 7D 2D E1 2B
+42 D5 B2 41 C4 21 DD 3F 87 12 7E CB 74 C8 50 D5
+0C 43 1B 42 C6 21 A2 53 C6 21 6A 4E 3E 4F 7A 90
+23 00 27 20 92 53 C4 21 B0 12 D2 D4 3C 40 00 03
+0E 93 1C 24 3C 40 10 03 1E 93 18 24 3C 40 20 03
+2E 93 14 24 3C 40 20 02 2E 92 10 24 3C 40 30 02
+3E 92 0C 24 3C 40 30 03 3E 93 08 24 3C 40 30 00
+19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 4F 3D 41
+30 4D 7A 90 26 00 07 20 3C 40 10 02 92 53 C4 21
+B0 12 D2 D4 ED 3F 7A 90 40 00 16 20 3C 40 20 00
+92 53 C4 21 B0 12 1E D5 0C 20 3C 50 10 00 3E 40
+2B 00 B0 12 1E D5 92 92 C0 21 C4 21 02 24 92 53
+C4 21 8E 10 0C 5E DA 3F B0 12 1E D5 FA 23 3C 50
+10 00 B0 12 06 D5 EF 3F 0C 43 1B 42 C6 21 A2 53
+C6 21 87 12 7E CB 74 C8 1A D6 FE 90 26 00 00 00
+3E 40 20 00 03 20 3C 50 82 00 C8 3F B0 12 1E D5
+E1 23 3C 50 80 00 B0 12 06 D5 DC 3F D6 C6 04 52
+45 54 49 00 87 12 14 C8 00 13 EC CA 2A C4 14 C8
+2C 00 48 D5 12 D6 58 D6 09 4B 2E 4E 0E DC A4 3F
+38 CF 03 4D 4F 56 84 12 4E D6 00 40 62 D6 05 4D
+4F 56 2E 42 84 12 4E D6 40 40 00 00 03 41 44 44
+84 12 4E D6 00 50 7C D6 05 41 44 44 2E 42 84 12
+4E D6 40 50 88 D6 04 41 44 44 43 00 84 12 4E D6
+00 60 96 D6 06 41 44 44 43 2E 42 00 84 12 4E D6
+40 60 3E D6 04 53 55 42 43 00 84 12 4E D6 00 70
+B4 D6 06 53 55 42 43 2E 42 00 84 12 4E D6 40 70
+C2 D6 03 53 55 42 84 12 4E D6 00 80 D2 D6 05 53
+55 42 2E 42 84 12 4E D6 40 80 1A CF 03 43 4D 50
+84 12 4E D6 00 90 EC D6 05 43 4D 50 2E 42 84 12
+4E D6 40 90 08 CF 04 44 41 44 44 00 84 12 4E D6
+00 A0 06 D7 06 44 41 44 44 2E 42 00 84 12 4E D6
+40 A0 F8 D6 03 42 49 54 84 12 4E D6 00 B0 24 D7
+05 42 49 54 2E 42 84 12 4E D6 40 B0 30 D7 03 42
+49 43 84 12 4E D6 00 C0 3E D7 05 42 49 43 2E 42
+84 12 4E D6 40 C0 4A D7 03 42 49 53 84 12 4E D6
+00 D0 58 D7 05 42 49 53 2E 42 84 12 4E D6 40 D0
+00 00 03 58 4F 52 84 12 4E D6 00 E0 72 D7 05 58
+4F 52 2E 42 84 12 4E D6 40 E0 A4 D6 03 41 4E 44
+84 12 4E D6 00 F0 8C D7 05 41 4E 44 2E 42 84 12
+4E D6 40 F0 7E CB 48 D5 AA D7 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4F 3F DE D6 03 52 52 43
+84 12 A4 D7 00 10 BC D7 05 52 52 43 2E 42 84 12
+A4 D7 40 10 C8 D7 04 53 57 50 42 00 84 12 A4 D7
+80 10 D6 D7 03 52 52 41 84 12 A4 D7 00 11 E4 D7
+05 52 52 41 2E 42 84 12 A4 D7 40 11 F0 D7 03 53
+58 54 84 12 A4 D7 80 11 00 00 04 50 55 53 48 00
+84 12 A4 D7 00 12 0A D8 06 50 55 53 48 2E 42 00
+84 12 A4 D7 40 12 64 D7 04 43 41 4C 4C 00 84 12
+A4 D7 80 12 1A 53 0E 4A 87 12 34 C6 1E C8 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 88 CC 7E CB
+74 C8 54 D8 92 53 C4 21 3E 40 2C 00 B0 12 2A C4
+80 C8 E2 C9 40 C6 0A CD 08 D6 6C D8 0A 4E 3E 4F
+1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
+0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92
+D1 2F 8A 10 5A 06 8F 3F FE D7 04 52 52 43 4D 00
+84 12 4E D8 50 00 9A D8 04 52 52 41 4D 00 84 12
+4E D8 50 01 A8 D8 04 52 4C 41 4D 00 84 12 4E D8
+50 02 B6 D8 04 52 52 55 4D 00 84 12 4E D8 50 03
+18 D8 05 50 55 53 48 4D 84 12 4E D8 00 15 D2 D8
+04 50 4F 50 4D 00 84 12 4E D8 00 17 C4 D8 03 53
+3E 3D 85 12 00 38 EE D8 02 53 3C 00 85 12 00 34
+E0 D8 03 30 3E 3D 85 12 00 30 02 D9 02 30 3C 00
+85 12 00 30 00 00 02 55 3C 00 85 12 00 2C 16 D9
+03 55 3E 3D 85 12 00 28 0C D9 03 30 3C 3E 85 12
+00 24 2A D9 02 30 3D 00 85 12 00 20 00 00 02 49
+46 00 1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 0E 4A
+30 4D 20 D9 04 54 48 45 4E 00 1A 42 C6 21 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 63 2F
+88 DA 00 00 30 4D 14 D7 04 45 4C 53 45 00 1A 42
+C6 21 BA 40 00 3C 00 00 A2 53 C6 21 2F 83 8F 4A
+00 00 E3 3F 54 D9 05 55 4E 54 49 4C 3A 4F 08 4E
+3E 4F 19 42 C6 21 2A 83 0A 89 0A 11 3A 90 00 FE
+42 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21
+30 4D 98 D7 05 41 47 41 49 4E 0A 4E 38 40 00 3C
+E7 3F 00 00 05 57 48 49 4C 45 87 12 42 D9 76 C4
+2A C4 F8 D8 06 52 45 50 45 41 54 00 87 12 CA D9
+5A D9 2A C4 F6 D9 3D 41 08 4E 3E 4F 2A 48 B2 92
+C4 21 CD 2F 98 42 C6 21 00 00 30 4D 28 D8 03 42
+57 31 84 12 F4 D9 00 00 0E DA 03 42 57 32 84 12
+F4 D9 00 00 1A DA 03 42 57 33 84 12 F4 D9 00 00
+32 DA 3D 41 1A 42 C6 21 28 4E B2 92 C4 21 90 2B
+BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D
+00 00 03 46 57 31 84 12 30 DA 00 00 52 DA 03 46
+57 32 84 12 30 DA 00 00 5E DA 03 46 57 33 84 12
+30 DA 00 00 00 00 05 3F 47 4F 54 4F 3E 90 00 30
 07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0 00 08
-30 4D B2 DC 04 47 4F 54 4F 00 87 12 26 DB F2 CD
-00 CC 2A C4 00 00 05 3F 47 4F 54 4F 87 12 BC DC
-F2 CD 00 CC 2A C4 00 00 03 4A 4D 50 87 12 F2 CD
-08 DC 2A C4 E6 DC 04 3F 4A 4D 50 00 87 12 BC DC
-F2 CD 78 C4 DA DB 2A C4
+87 12 FC CC 16 CB 2A C4 6A DA 04 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
 @FFFE
-16 D6
+D8 D2
 q
index 9bb5309..d31be6a 100644 (file)
 @1800
-10 00 08 00 00 D6 E8 03 05 00 18 00 08 DD CC D2
-2C 01 7B B0 FC C7 0E C8
+10 00 08 00 00 D6 E8 03 05 00 18 00 9C DA 0C D1
+2D 01 6B B0 B6 C6 C8 C6
 @C400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C4
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C4 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C4 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C4 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C4 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C4 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C4 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C4 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C4 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C5 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C4 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C5 02 31 2D 00
-1E 83 30 4D D8 C4 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C5
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C5 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C5 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C4 01 3E 3E 8F F4 3B EB 37 0E C5 02 42 4C 00
-85 12 20 00 AC C5 04 42 41 53 45 00 85 12 DC 21
-C8 C4 05 53 54 41 54 45 85 12 BE 21 96 C5 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 C5 06 55 4D 2F
-4D 4F 44 00 30 12 62 C4 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C4 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C5
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 C5 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 C6
-02 23 53 00 87 12 32 C6 6A C6 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C6 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C5 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C5
-02 44 2E 00 87 12 D2 C5 44 C4 B0 C4 4C C5 64 C6
-BC C4 A2 C6 7E C6 14 C9 DC C8 2A C4 DC C5 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C4
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C6 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 C4
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A C6
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C6 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C6 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C5 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C7 03 4B 45 59 30 40 A0 C7
-18 42 0C 05 2F 83 8F 4E 00 00 B0 12 FC C7 92 B3
-1C 05 FD 27 1E 42 0C 05 B0 12 0E C8 30 4D 00 C7
-06 41 43 43 45 50 54 00 3C 40 6A C8 3B 40 34 C8
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C8 92 B3 1C 05 05 24 18 42 0C 05 38 90
-0A 00 04 20 21 53 39 40 22 C8 4D 15 A2 B3 1C 05
-FD 27 B2 40 11 00 0E 05 F2 C2 03 02 30 41 B2 40
-13 00 0E 05 F2 D2 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C8 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 0C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 1C 05 FD 27 82 48 0E 05 30 4D 60 C8
-2D 83 92 B3 1C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C6 04 45 4D 49 54 00 30 40 8C C8 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 C8 04 45 43 48
-4F 00 B2 40 82 48 58 C8 82 43 DE 21 30 4D E0 C6
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C8 92 43
-DE 21 30 4D 9C C6 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C8 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C8 EF 3F 00 C9
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C7 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C9 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C9 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C7 02 43
-52 00 30 40 46 C9 87 12 52 C9 02 0D 0A 00 14 C9
-2A C4 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C8 82 53 22 00 82 43 B4 21
-87 12 34 C4 52 C9 0A CC 34 C4 22 00 B6 C9 80 C9
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 C8 82 2E
-22 00 87 12 6C C9 34 C4 14 C9 0A CC 2A C4 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C4
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C4
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C4
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C4 02 3E 52 00 0E 12 3E 4F 30 4D 70 C4 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C4 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C4 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C4
+01 21 BE 4F 00 00 3E 4F 30 4D CC C4 02 30 3D 00
+1E 83 0E 7E 30 4D FC C4 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C5 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 C5 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 C5 02 23 53 00 87 12 88 C5 C0 C5
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C5
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C4 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C5 34 C4 86 C4 D4 C4 BA C5
+92 C4 F8 C5 D4 C5 D6 C7 7E CB 82 C7 2A C4 22 C5
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C5 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C6 18 42 0C 05 2F 83 8F 4E
+00 00 B0 12 B6 C6 92 B3 1C 05 FD 27 1E 42 0C 05
+B0 12 C8 C6 30 4D A2 B3 1C 05 FD 27 B2 40 11 00
+0E 05 F2 C2 03 02 30 41 B2 40 13 00 0E 05 F2 D2
+03 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C6
+B0 12 B6 C6 12 D2 0A 18 F9 3F F0 C4 06 41 43 43
+45 50 54 00 3C 40 64 C7 3B 40 2E C7 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C7
+92 B3 1C 05 05 24 18 42 0C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 0C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 82 48 0E 05 30 4D 5A C7 2D 83 92 B3 1C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C4 04 45 4D 49
+54 00 30 40 86 C7 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C C7 04 45 43 48 4F 00 B2 40 82 48
+52 C7 82 43 DE 21 30 4D 32 C6 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C7 92 43 DE 21 30 4D 20 C6
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C7
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C7 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C5
+02 43 52 00 30 40 08 C8 87 12 1E C8 02 0D 0A 00
+D6 C7 2A C4 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C5 82 53 22 00 82 43 B4 21 87 12 14 C8
+1E C8 EC CA 14 C8 22 00 80 C8 4C C8 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA C7 82 2E 22 00 87 12 38 C8 14 C8 D6 C7
+EC CA 2A C4 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,305 +86,284 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C4 34 40 00 C4 30 4D 0E C9 03 55
+00 00 35 40 0E C4 34 40 00 C4 30 4D D0 C7 03 55
 4D 2A 2C 4F 0B 43 09 43 08 43 1A 43 0E BA 02 24
 09 5C 08 6B 0C 5C 0B 6B 0A 5A F8 2B 8F 49 00 00
-0E 48 30 4D A2 C5 07 3E 4E 55 4D 42 45 52 2C 4F
+0E 48 30 4D 82 C4 07 3E 4E 55 4D 42 45 52 2C 4F
 0B 4E 1A 42 DC 21 68 4C 78 80 30 00 78 90 0A 00
 05 28 78 80 07 00 78 90 0A 00 1F 28 08 9A 22 C3
-1C 2C 5D 15 1C 4F 02 00 0E 4A 3D 40 D0 CA D2 3F
-D2 CA 81 49 02 00 1C 4F 04 00 1E 41 04 00 3D 40
-E4 CA C8 3F E6 CA 39 51 3E 61 8F 49 04 00 8F 4E
+1C 2C 5D 15 1C 4F 02 00 0E 4A 3D 40 B0 C9 D2 3F
+B2 C9 81 49 02 00 1C 4F 04 00 1E 41 04 00 3D 40
+C4 C9 C8 3F C6 C9 39 51 3E 61 8F 49 04 00 8F 4E
 02 00 3A 17 1C 53 1B 83 D6 23 8F 4C 00 00 0E 4B
-30 4D 1B 42 DC 21 0C 43 2D 15 3D 40 4E CB 0A 4B
-3F 82 8F 4E 06 00 8F 43 04 00 8F 43 02 00 0C 4E
-7B 4C 68 4C 78 90 2D 00 04 28 BE 23 B1 43 02 00
-E1 3F 2A 43 78 80 25 00 07 24 3A 52 68 53 04 24
-3A 40 10 00 58 83 AF 23 1C 53 1B 83 EA 3F 50 CB
-31 24 2D 83 78 90 28 00 CD 27 32 B0 00 02 2A 20
-32 D0 00 02 78 90 F7 00 C5 27 78 90 F5 00 22 20
-09 43 8F 49 02 00 5B 83 09 4B 09 5C 69 49 79 80
-30 00 79 90 0A 00 05 28 79 80 07 00 79 90 0A 00
-0A 28 09 9A 08 2C 8F 49 00 00 0E 4A 2C 15 B0 12
-E8 C5 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-0E 4B 4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0
-00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00
-04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00
-BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02
-01 20 2F 53 30 4D AC C8 07 45 58 45 43 55 54 45
-0A 4E 3E 4F 00 4A 26 C5 01 2C 1A 42 C6 21 A2 53
-C6 21 8A 4E 00 00 3E 4F 30 4D 08 CC 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52
-C6 21 BA 40 34 C4 00 00 8A 4E 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00
-0E 49 EB 3F 30 4D 3E C9 05 43 4F 55 4E 54 2F 83
-1E 53 8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21
-B2 4F C2 21 3E 4F 82 43 C4 21 30 4D 87 12 6C CC
-B0 C5 B6 C9 86 CC 3D 40 8E CC C1 22 3C 3E 90 CC
-0A 4E 3E 4F 3D 40 A6 CC 34 27 3D 40 80 CC 1A E2
-BE 21 B3 27 AD 23 A8 CC 3E 4F 3D 40 80 CC BA 23
-DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
-72 CF CD 3F F8 CB 08 45 56 41 4C 55 41 54 45 00
-39 40 C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A C4
-7C CC E4 CC B2 41 C4 21 B2 41 C2 21 B2 41 C0 21
-3D 41 30 4D 6C C5 04 51 55 49 54 00 82 43 08 18
-31 40 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12
-2A C4 42 C9 92 C8 DC C8 7C CC DE C4 70 C5 52 C9
-0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 70 CD
-34 C4 30 FF F2 C6 8A C5 52 C9 0A 46 52 41 4D 20
-66 75 6C 6C 21 00 70 CD 24 C7 12 CD C0 C7 05 41
-42 4F 52 54 3F 40 80 20 D1 3F 4E CD 86 41 42 4F
-52 54 22 00 87 12 6C C9 34 C4 70 CD 0A CC 2A C4
-8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 32 D5
-B0 12 FC C7 92 C3 1C 05 38 40 AA 0A 39 42 09 59
-03 43 19 83 FD 23 18 83 F9 23 92 B3 1C 05 F2 23
-87 12 AC D4 34 C4 DE 21 F2 C4 B2 C8 52 C9 04 1B
-5B 37 6D 00 14 C9 54 C4 28 C7 CC CD 42 C9 52 C9
-05 6C 69 6E 65 3A 14 C9 40 C5 D2 C6 14 C9 52 C9
-04 1B 5B 30 6D 00 14 C9 54 CD 00 00 83 5B 27 5D
-87 12 F2 CD 34 C4 34 C4 0A CC 0A CC 2A C4 08 CA
-01 27 87 12 B0 C5 B6 C9 0E CA 28 C7 00 CE 2A C4
-B0 CC CE C5 81 5C 92 42 C0 21 C4 21 30 4D DC CD
-81 5B 82 43 BE 21 30 4D 04 CE 01 5D B2 43 BE 21
-30 4D BE 4F 02 00 3E 4F 30 4D 72 C7 82 49 53 00
-87 12 C8 C5 F2 C4 28 C7 44 CE E0 CD 34 C4 22 CE
-0A CC 2A C4 F2 CD 22 CE 2A C4 2C CE 09 49 4D 4D
-45 44 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00
-30 4D 68 C9 87 52 45 43 55 52 53 45 19 42 C6 21
-99 42 BA 21 00 00 A2 53 C6 21 30 4D F6 CC 88 50
-4F 53 54 50 4F 4E 45 00 87 12 B0 C5 B6 C9 0E CA
-54 C4 28 C7 00 CE 70 C5 28 C7 A8 CE 34 C4 34 C4
-0A CC 0A CC 34 C4 0A CC 0A CC 2A C4 10 CE 81 3B
-82 93 BE 21 A8 27 87 12 34 C4 2A C4 0A CC 46 CF
-12 CE 2A C4 AE CE 07 3A 4E 4F 4E 41 4D 45 2F 83
-8F 4E 00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40
-02 02 B0 12 32 CF BA 40 87 12 FC FF A2 83 C6 21
-B2 43 BE 21 82 4F BC 21 30 4D C6 CE 01 3A 30 12
-E6 CE 87 12 92 C9 B0 C5 B6 C9 0C CF 3D 41 08 4E
-7A 4E 5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0
-1E 00 09 5E 3E 4F BA 40 30 40 00 00 BA 40 F8 CE
-02 00 82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52
+30 4D 32 C0 00 02 1B 42 DC 21 0C 43 2D 15 3D 40
+32 CA 0A 4B 3F 82 8F 4E 06 00 8F 43 04 00 8F 43
+02 00 0C 4E 7B 4C 68 4C 78 90 2D 00 04 28 BC 23
+B1 43 02 00 DF 3F 2A 43 78 80 25 00 07 24 3A 52
+68 53 04 24 3A 40 10 00 58 83 AD 23 1C 53 1B 83
+EA 3F 34 CA 2E 24 2D 83 78 90 28 00 CB 27 32 D0
+00 02 78 90 F7 00 C6 27 78 90 F5 00 22 20 09 43
+8F 49 02 00 5B 83 09 4B 09 5C 69 49 79 80 30 00
+79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
+09 9A 08 2C 8F 49 00 00 0E 4A 2C 15 B0 12 3E C5
+2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4B
+4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
+3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
+BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
+00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
+2F 53 30 4D 7E C6 04 48 45 52 45 00 2F 83 8F 4E
+00 00 1E 42 C6 21 30 4D B6 C4 01 2C 1A 42 C6 21
+8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D EC C6 05 41
+4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D A6 C7 07 45
+58 45 43 55 54 45 0A 4E 3E 4F 00 4A EA CA 87 4C
+49 54 45 52 41 4C 82 93 BE 21 0C 24 1A 42 C6 21
+A2 52 C6 21 BA 40 14 C8 00 00 8A 4E 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 06 24 19 4A 02 00 8A 4E
+02 00 0E 49 EB 3F 30 4D 00 C8 05 43 4F 55 4E 54
+2F 83 1E 53 8F 4E 00 00 5E 4E FF FF 30 4D 82 4E
+C0 21 B2 4F C2 21 3E 4F 82 43 C4 21 30 4D 85 12
+20 00 87 12 6E CB 7E CB 80 C8 8C CB 3D 40 94 CB
+AE 22 64 3E 96 CB 0A 4E 3E 4F 3D 40 AC CB 21 27
+3D 40 86 CB 1A E2 BE 21 A1 27 B5 23 AE CB 3E 4F
+3D 40 86 CB B8 23 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 62 CE CB 3F 0E CB 08 45 56 41
+4C 55 41 54 45 00 39 40 C0 21 3C 49 3B 49 3A 49
+3D 15 B0 12 2A C4 82 CB EA CB B2 41 C4 21 B2 41
+C2 21 B2 41 C0 21 3D 41 30 4D 85 12 BE 21 08 C5
+04 51 55 49 54 00 82 43 08 18 31 40 E0 20 B2 40
+00 20 00 20 82 43 BE 21 B0 12 2A C4 04 C8 8C C7
+7E CB 82 C7 82 CB A4 C4 0C C5 1E C8 0C 73 74 61
+63 6B 20 65 6D 70 74 79 21 00 7C CC 14 C8 30 FF
+DC CA 26 C5 1E C8 0A 46 52 41 4D 20 66 75 6C 6C
+21 00 7C CC 3C C6 1C CC FE CA 05 41 42 4F 52 54
+3F 40 80 20 D0 3F 5A CC 86 41 42 4F 52 54 22 00
+87 12 38 C8 14 C8 7C CC EC CA 2A C4 8F 93 02 00
+03 20 2F 52 3E 4F 30 4D B0 12 04 D2 B0 12 B6 C6
+92 C3 1C 05 38 40 AA 0A 39 42 03 43 19 83 FD 23
+18 83 FA 23 92 B3 1C 05 F3 23 87 12 7E D1 14 C8
+DE 21 EA C4 AC C7 1E C8 04 1B 5B 37 6D 00 D6 C7
+58 C4 40 C6 D6 CC 04 C8 1E C8 05 6C 69 6E 65 3A
+D6 C7 D0 C4 24 C6 D6 C7 1E C8 04 1B 5B 30 6D 00
+D6 C7 60 CC 00 00 83 5B 27 5D 87 12 FC CC 14 C8
+14 C8 EC CA EC CA 2A C4 E8 C8 01 27 87 12 7E CB
+80 C8 EE C8 40 C6 0A CD 2A C4 B6 CB 32 C5 81 5C
+92 42 C0 21 C4 21 30 4D E6 CC 81 5B 82 43 BE 21
+30 4D 0E CD 01 5D B2 43 BE 21 30 4D BE 4F 02 00
+3E 4F 30 4D D6 CA 82 49 53 00 87 12 FA CB EA C4
+40 C6 4E CD EA CC 14 C8 2C CD EC CA 2A C4 FC CC
+2C CD 2A C4 36 CD 09 49 4D 4D 45 44 49 41 54 45
+1A 42 B6 21 FA D0 80 00 00 00 30 4D 00 CC 88 50
+4F 53 54 50 4F 4E 45 00 87 12 7E CB 80 C8 EE C8
+58 C4 40 C6 0A CD 0C C5 40 C6 98 CD 14 C8 14 C8
+EC CA EC CA 14 C8 EC CA EC CA 2A C4 1A CD 81 3B
+82 93 BE 21 B5 27 87 12 14 C8 2A C4 EC CA 36 CE
+1C CD 2A C4 9E CD 07 3A 4E 4F 4E 41 4D 45 30 12
+DC CD 2F 83 8F 4E 00 00 1E 42 C6 21 1E B3 0E 63
+0A 4E 39 40 00 02 38 40 02 02 21 3C BA 40 87 12
+FC FF A2 83 C6 21 B2 43 BE 21 30 4D B6 CD 01 3A
+30 12 DC CD 92 B3 C6 21 A2 63 C6 21 87 12 7E CB
+80 C8 04 CE 3D 41 08 4E 7A 4E 5A D3 5A 53 0A 58
+19 42 DA 21 6E 4E 3E F0 1E 00 09 5E 3E 4F 82 48
+B6 21 82 49 B8 21 82 4A BA 21 82 4F BC 21 2A 52
 82 4A C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21
 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12
-52 C9 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
-68 21 7C CD B0 C9 08 56 41 52 49 41 42 4C 45 00
-B0 12 02 CF BA 40 86 12 FC FF E4 3F 58 CC 08 43
-4F 4E 53 54 41 4E 54 00 B0 12 02 CF BA 40 85 12
-FC FF 8A 4E FE FF 3E 4F D5 3F 8E CF 06 43 52 45
-41 54 45 00 B0 12 02 CF BA 40 85 12 FC FF 8A 4A
-FE FF C8 3F C6 CC 05 44 4F 45 53 3E 1A 42 BA 21
-BA 40 84 12 00 00 8A 4D 02 00 3D 41 30 4D C6 CF
-05 44 45 46 45 52 30 12 54 CF 8B 3F 96 CA 05 3E
-42 4F 44 59 2E 52 30 4D AC CF 04 43 4F 44 45 00
-B0 12 02 CF 2A 82 82 4A C6 21 87 12 F4 CE D6 D2
-A8 D2 2A C4 FA CF 07 43 4F 44 45 4E 4E 4D 87 12
-CE CE 12 CE 04 D0 2A C4 00 00 07 45 4E 44 43 4F
-44 45 87 12 F0 D2 46 CF 2A C4 5C CD 03 41 53 4D
-92 42 DA 21 EC 21 B2 40 AC D2 DA 21 D9 3F 2A D0
-06 45 4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F
-00 00 05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12
-00 00 A2 53 C6 21 B2 43 BE 21 30 40 F0 D2 00 00
-05 4C 4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00
-BA 40 2A C4 02 00 A2 52 C6 21 ED 3F 4C CE 85 48
-49 32 4C 4F 87 12 F2 C6 CE D0 0A CC 12 CE D6 D2
-A8 D2 2A C4 9E D0 82 49 46 00 2F 83 8F 4E 00 00
-1E 42 C6 21 A2 52 C6 21 BE 40 28 C7 00 00 2E 53
-30 4D E0 CF 84 45 4C 53 45 00 A2 52 C6 21 1A 42
-C6 21 BA 40 24 C7 FC FF 8E 4A 00 00 2A 83 0E 4A
-30 4D 6E CA 84 54 48 45 4E 00 9E 42 C6 21 00 00
-3E 4F 30 4D 16 D0 85 42 45 47 49 4E 30 40 F2 C6
-F4 D0 85 55 4E 54 49 4C 39 40 28 C7 A2 52 C6 21
-1A 42 C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D
-3C D0 85 41 47 41 49 4E 39 40 24 C7 EF 3F 76 CF
-85 57 48 49 4C 45 87 12 BA D0 78 C4 2A C4 64 CE
-86 52 45 50 45 41 54 00 87 12 38 D1 FA D0 2A C4
-D4 D0 82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21
-1E 42 C6 21 BE 40 3C C7 FE FF A2 53 00 20 1A 42
-00 20 8A 43 00 00 30 4D 1C CC 84 4C 4F 4F 50 00
-39 40 5E C7 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF
-8A 4E FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93
-03 24 8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C7 85 2B
-4C 4F 4F 50 39 40 4C C7 E5 3F 8A D1 85 4C 45 41
-56 45 1A 42 C6 21 BA 40 6E C7 00 00 BA 40 24 C7
-02 00 B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42
-00 20 89 4A 00 00 30 4D CC D1 04 4D 4F 56 45 00
-0A 4E 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24
-06 2C F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A
-09 5A 19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D
-40 D1 0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12
-B4 CF 34 C4 10 00 34 C4 00 00 3C C7 34 C4 00 00
-0A CC 5E C7 4C D2 F2 C6 34 C4 C8 21 44 C4 F2 C4
-0A CC FA C4 CC CF 34 C4 CA 21 FA C4 2A C4 F0 CD
-05 46 4F 52 54 48 84 12 66 D2 D0 D2 04 D6 0E D3
-70 D2 B6 D0 BE D1 3A D4 00 D3 D0 D4 EA D4 12 D1
-76 D5 00 00 0E D4 1A CE EE CF 00 00 32 D1 09 41
-53 53 45 4D 42 4C 45 52 84 12 66 D2 F2 DB 5A DC
-A6 DB C4 DC 6C DB E8 DC 98 D8 00 00 62 DB 12 DC
-C4 DB 02 DC A8 D9 00 00 00 00 F6 DC 9A D2 9E D2
-04 41 4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40
-CC 21 9D 3F 7E CE 08 50 52 45 56 49 4F 55 53 00
-3A 40 0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E C9
-04 4F 4E 4C 59 00 82 43 CC 21 30 4D 62 D1 0B 44
-45 46 49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21
-30 4D 06 D1 07 43 4F 4D 50 41 52 45 0C 4E 38 4F
-3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83
-07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D
-1E 43 30 4D FC CE 86 5B 54 48 45 4E 5D 00 30 4D
-56 D3 86 5B 45 4C 53 45 5D 00 87 12 34 C4 00 00
-36 C5 B0 C5 B6 C9 5E CC 44 C4 28 C7 D0 D3 8A C4
-8A C4 52 C9 06 5B 54 48 45 4E 5D 00 2C D3 32 C7
-9E D3 36 C9 40 C5 54 C4 32 C7 72 D3 2A C4 8A C4
-8A C4 52 C9 06 5B 45 4C 53 45 5D 00 2C D3 32 C7
-BE D3 36 C9 40 C5 54 C4 32 C7 70 D3 2A C4 52 C9
-04 5B 49 46 5D 00 2C D3 32 C7 72 D3 24 C7 70 D3
-36 C9 52 C9 05 0D 0A 6B 6F 20 14 C9 92 C8 6C CC
-24 C7 72 D3 62 D3 84 5B 49 46 5D 00 0E 93 3E 4F
-BC 27 30 4D E6 D3 89 5B 44 45 46 49 4E 45 44 5D
-87 12 B0 C5 B6 C9 0E CA 6C C4 2A C4 F6 D3 8B 5B
-55 4E 44 45 46 49 4E 45 44 5D 87 12 B0 C5 B6 C9
-0E CA 6C C4 64 C5 2A C4 2A D4 3D 41 B2 4E 0E 18
-A2 4E 0C 18 3E 4F 44 3C FA D1 06 4D 41 52 4B 45
-52 00 B0 12 02 CF BA 40 84 12 FC FF BA 40 28 D4
-FE FF 9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52
-C6 21 30 40 4C CF 76 D2 06 D3 1A D3 6E D4 3A 4E
-82 4A C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A
-08 49 29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00
-1D 83 F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D
-E6 D2 09 50 57 52 5F 53 54 41 54 45 84 12 66 D4
-CC D2 08 DD 50 D1 09 52 53 54 5F 53 54 41 54 45
-92 42 0E 18 B0 D4 92 42 0C 18 B2 D4 EF 3F A2 D4
-08 50 57 52 5F 48 45 52 45 00 92 42 C8 21 B0 D4
-92 42 C6 21 B2 D4 30 4D B6 D4 08 52 53 54 5F 48
-45 52 45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18
-EC 3F 32 D2 04 57 49 50 45 00 39 40 10 00 29 83
-B9 43 80 FF FC 23 B2 40 26 C8 24 C8 B2 40 80 D5
-7E D5 B2 40 CC D2 0E 18 B2 40 08 DD 0C 18 30 12
-C0 D4 B2 40 8C C8 8A C8 B2 40 46 C9 44 C9 B2 40
-A0 C7 9E C7 B2 40 18 00 0A 18 37 40 1A C4 36 40
-BC C4 35 40 0E C4 34 40 00 C4 39 40 10 00 29 83
-89 43 E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00
-B4 21 30 41 04 D5 04 57 41 52 4D 00 30 40 80 D5
-3D 40 B4 D5 92 C3 30 01 1E 42 08 18 0E 93 11 24
-D2 B3 00 02 02 20 3E E3 1E 53 F2 D0 03 00 0A 02
-3E 90 0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27
-87 2F 30 4D 52 C9 06 0D 1B 5B 37 6D 23 00 14 C9
-E2 C6 52 C9 1F 46 61 73 74 46 6F 72 74 68 20 56
-33 30 30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72
-65 6E 73 20 14 C9 34 C4 80 FF F2 C6 28 C5 D2 C6
-52 C9 0B 62 79 74 65 73 20 66 72 65 65 20 24 C7
-CC CD 24 D3 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
-B2 40 04 A5 20 01 B2 40 88 5A CC 01 B2 D0 00 08
-04 02 B2 D3 06 02 B2 43 02 02 B2 40 00 01 24 02
-B2 40 FF FE 22 02 B2 D0 FF FE 26 02 B2 43 42 02
-B2 D3 46 02 B2 43 62 02 B2 D3 66 02 B2 40 00 A5
-60 01 B2 40 FF 1E 80 01 B2 40 B0 00 82 01 B2 40
-1E 00 84 01 39 40 10 00 82 43 88 01 92 D2 5E 01
-08 18 38 40 59 14 18 83 FE 23 19 83 FA 23 39 40
-00 08 29 83 89 43 00 20 FC 23 39 40 1E 00 29 83
-B9 40 16 D6 E2 FF FB 23 B2 40 2C C8 EC FF B2 40
-81 00 00 05 92 42 02 18 06 05 92 42 04 18 08 05
-92 C3 00 05 92 D3 1A 05 3F 40 80 20 31 40 E0 20
-30 12 7C D5 3F 3F 38 40 C0 21 39 48 2A 48 09 5A
-1A 52 C4 21 09 9A 03 24 7E 9A FC 27 1A 83 0E 4A
-2A 88 82 4A C4 21 30 4D 1C 15 B0 12 2A C4 B6 C9
-0E CA 32 C7 FE D6 02 CB 28 C7 00 CE 20 D7 00 D7
-29 4E 39 90 86 12 02 20 2E 53 0A 3C 39 90 85 12
-03 20 1E 4E 02 00 04 3C 39 90 84 12 01 20 2E 52
-1B 17 30 41 3E 40 28 00 B0 12 E8 D6 19 42 C6 21
-A2 53 C6 21 89 4E 00 00 3E 40 29 00 1C 15 12 12
-C4 21 92 53 C4 21 B0 12 2A C4 B6 C9 02 CB 28 C7
-5E D7 54 D7 21 53 3E 90 10 00 83 2D E1 2B 60 D7
-B2 41 C4 21 DD 3F 87 12 B0 C5 C6 D6 6E D7 0C 43
-1B 42 C6 21 A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00
-2D 20 92 53 C4 21 B0 12 E8 D6 0E 93 03 20 3C 40
-00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C 2E 93
-03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40 20 02
-12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93 03 20
-3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 21 A2 53
-C6 21 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00
-07 20 3C 40 10 02 92 53 C4 21 B0 12 E8 D6 ED 3F
-7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12
-3C D7 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 3C D7
-92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E
-DA 3F B0 12 3C D7 FA 23 3C 50 10 00 B0 12 24 D7
-EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 87 12 B0 C5
-C6 D6 44 D8 FE 90 26 00 00 00 3E 40 20 00 03 20
-3C 50 82 00 C8 3F B0 12 3C D7 E1 23 3C 50 80 00
-B0 12 24 D7 DC 3F 1C C8 04 52 45 54 49 00 87 12
-34 C4 00 13 0A CC 2A C4 34 C4 2C 00 66 D7 3C D8
-82 D8 2E 4E 0E DC 09 4B A4 3F 80 D0 03 4D 4F 56
-84 12 78 D8 00 40 8C D8 05 4D 4F 56 2E 42 84 12
-78 D8 40 40 00 00 03 41 44 44 84 12 78 D8 00 50
-A6 D8 05 41 44 44 2E 42 84 12 78 D8 40 50 B2 D8
-04 41 44 44 43 00 84 12 78 D8 00 60 C0 D8 06 41
-44 44 43 2E 42 00 84 12 78 D8 40 60 68 D8 04 53
-55 42 43 00 84 12 78 D8 00 70 DE D8 06 53 55 42
-43 2E 42 00 84 12 78 D8 40 70 EC D8 03 53 55 42
-84 12 78 D8 00 80 FC D8 05 53 55 42 2E 42 84 12
-78 D8 40 80 62 D0 03 43 4D 50 84 12 78 D8 00 90
-16 D9 05 43 4D 50 2E 42 84 12 78 D8 40 90 50 D0
-04 44 41 44 44 00 84 12 78 D8 00 A0 30 D9 06 44
-41 44 44 2E 42 00 84 12 78 D8 40 A0 22 D9 03 42
-49 54 84 12 78 D8 00 B0 4E D9 05 42 49 54 2E 42
-84 12 78 D8 40 B0 5A D9 03 42 49 43 84 12 78 D8
-00 C0 68 D9 05 42 49 43 2E 42 84 12 78 D8 40 C0
-74 D9 03 42 49 53 84 12 78 D8 00 D0 82 D9 05 42
-49 53 2E 42 84 12 78 D8 40 D0 00 00 03 58 4F 52
-84 12 78 D8 00 E0 9C D9 05 58 4F 52 2E 42 84 12
-78 D8 40 E0 CE D8 03 41 4E 44 84 12 78 D8 00 F0
-B6 D9 05 41 4E 44 2E 42 84 12 78 D8 40 F0 B0 C5
-66 D7 D4 D9 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F 08 D9 03 52 52 43 84 12 CE D9 00 10
-E6 D9 05 52 52 43 2E 42 84 12 CE D9 40 10 F2 D9
-04 53 57 50 42 00 84 12 CE D9 80 10 00 DA 03 52
-52 41 84 12 CE D9 00 11 0E DA 05 52 52 41 2E 42
-84 12 CE D9 40 11 1A DA 03 53 58 54 84 12 CE D9
-80 11 00 00 04 50 55 53 48 00 84 12 CE D9 00 12
-34 DA 06 50 55 53 48 2E 42 00 84 12 CE D9 40 12
-8E D9 04 43 41 4C 4C 00 84 12 CE D9 80 12 1A 53
-0E 4A 87 12 E2 C6 52 C9 0D 6F 75 74 20 6F 66 20
-62 6F 75 6E 64 73 7C CD B0 C5 C6 D6 7E DA 92 53
-C4 21 3E 40 2C 00 B0 12 2A C4 B6 C9 02 CB 28 C7
-00 CE 32 D8 96 DA 0A 4E 3E 4F 1A 83 E0 33 29 4E
-59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
-10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06
-8F 3F 28 DA 04 52 52 43 4D 00 84 12 78 DA 50 00
-C4 DA 04 52 52 41 4D 00 84 12 78 DA 50 01 D2 DA
-04 52 4C 41 4D 00 84 12 78 DA 50 02 E0 DA 04 52
-52 55 4D 00 84 12 78 DA 50 03 42 DA 05 50 55 53
-48 4D 84 12 78 DA 00 15 FC DA 04 50 4F 50 4D 00
-84 12 78 DA 00 17 85 12 00 3C EE DA 03 53 3E 3D
-85 12 00 38 1C DB 02 53 3C 00 85 12 00 34 0A DB
-03 30 3E 3D 85 12 00 30 30 DB 02 30 3C 00 85 12
-00 30 00 00 02 55 3C 00 85 12 00 2C 44 DB 03 55
-3E 3D 85 12 00 28 3A DB 03 30 3C 3E 85 12 00 24
-58 DB 02 30 3D 00 85 12 00 20 00 00 02 49 46 00
-1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D
-4E DB 04 54 48 45 4E 00 1A 42 C6 21 08 4E 3E 4F
-09 48 29 53 0A 89 0A 11 3A 90 00 02 61 2F 88 DA
-00 00 30 4D 3E D9 04 45 4C 53 45 00 1A 42 C6 21
-BA 40 00 3C 00 00 A2 53 C6 21 2F 83 8F 4A 00 00
-E3 3F 82 DB 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
-19 42 C6 21 2A 83 0A 89 0A 11 3A 90 00 FE 40 3B
-3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D
-C2 D9 05 41 47 41 49 4E 87 12 16 DB CA DB 2A C4
-00 00 05 57 48 49 4C 45 87 12 70 DB 78 C4 2A C4
-26 DB 06 52 45 50 45 41 54 00 87 12 16 DB CA DB
-88 DB 2A C4 26 DC 3D 41 2E 4E 08 4E 3E 4F 2A 48
-0A 93 88 43 00 00 CA 23 98 42 C6 21 00 00 30 4D
-52 DA 03 42 57 31 84 12 24 DC E0 21 42 DC 03 42
-57 32 84 12 24 DC E2 21 4E DC 03 42 57 33 84 12
-24 DC E4 21 66 DC 3D 41 1A 42 C6 21 2E 4E 28 4E
-08 93 8E 43 00 00 8B 23 BA 4F 00 00 A2 53 C6 21
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12
-64 DC E6 21 8A DC 03 46 57 32 84 12 64 DC E8 21
-96 DC 03 46 57 33 84 12 64 DC EA 21 3E 90 00 30
+1E C8 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 88 CC CC CB 05 44 45 46 45 52 B0 12 F4 CD
+BA 40 30 40 FC FF BA 40 EA CD FE FF E3 3F 5A CB
+06 43 52 45 41 54 45 00 B0 12 F4 CD BA 40 85 12
+FC FF 8A 4A FE FF D6 3F 66 CE 05 44 4F 45 53 3E
+1A 42 BA 21 BA 40 84 12 00 00 8A 4D 02 00 3D 41
+30 4D 76 C9 05 3E 42 4F 44 59 2E 52 30 4D 80 CE
+04 43 4F 44 45 00 B0 12 F4 CD A2 82 C6 21 87 12
+0E D1 E8 D0 2A C4 C0 CE 07 43 4F 44 45 4E 4E 4D
+B0 12 C2 CD F2 3F 00 00 07 45 4E 44 43 4F 44 45
+87 12 1C D1 36 CE 2A C4 68 CC 03 41 53 4D B2 40
+EC D0 DA 21 E0 3F E8 CE 06 45 4E 44 41 53 4D 00
+87 12 F0 CE 30 D1 2A C4 00 00 05 43 4F 4C 4F 4E
+1A 42 C6 21 BA 40 87 12 00 00 A2 53 C6 21 B2 43
+BE 21 30 40 1C D1 00 00 05 4C 4F 32 48 49 1A 42
+C6 21 BA 40 B0 12 00 00 BA 40 2A C4 02 00 A2 52
+C6 21 ED 3F 56 CD 85 48 49 32 4C 4F 87 12 DC CA
+86 CF EC CA 1C CD 0E D1 E8 D0 2A C4 56 CF 82 49
+46 00 2F 83 8F 4E 00 00 1E 42 C6 21 A2 52 C6 21
+BE 40 40 C6 00 00 2E 53 30 4D 9A CE 84 45 4C 53
+45 00 A2 52 C6 21 1A 42 C6 21 BA 40 3C C6 FC FF
+8E 4A 00 00 2A 83 0E 4A 30 4D 4E C9 84 54 48 45
+4E 00 9E 42 C6 21 00 00 3E 4F 30 4D D8 CE 85 42
+45 47 49 4E 30 40 DC CA AC CF 85 55 4E 54 49 4C
+39 40 40 C6 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF
+8A 4E FE FF 3E 4F 30 4D FA CE 85 41 47 41 49 4E
+39 40 3C C6 EF 3F 7A C8 85 57 48 49 4C 45 87 12
+72 CF 76 C4 2A C4 34 C8 86 52 45 50 45 41 54 00
+87 12 F0 CF B2 CF 2A C4 8C CF 82 44 4F 00 2F 83
+8F 4E 00 00 A2 53 C6 21 1E 42 C6 21 BE 40 54 C6
+FE FF A2 53 00 20 1A 42 00 20 8A 43 00 00 30 4D
+1E CB 84 4C 4F 4F 50 00 39 40 76 C6 A2 52 C6 21
+1A 42 C6 21 8A 49 FC FF 8A 4E FE FF 1E 42 00 20
+A2 83 00 20 2E 4E 0E 93 03 24 8E 4A 00 00 F6 3F
+3E 4F 30 4D 90 C6 85 2B 4C 4F 4F 50 39 40 64 C6
+E5 3F 42 D0 04 4D 4F 56 45 00 0A 4E 38 4F 39 4F
+3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49 00 00
+18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83 18 83
+E8 49 00 00 1A 83 FA 23 30 4D 14 C8 CA 21 F2 C4
+2A C4 84 12 BA D0 EA CF 82 D3 1A D0 FA CC 6E CF
+76 D0 96 D4 64 C8 A2 D1 BC D1 CA CF 3C D2 00 00
+68 D4 24 CD B4 CE 00 00 84 12 BA D0 B4 D9 16 DA
+68 D9 8A DA 2E D9 00 00 5E D6 00 00 24 D9 D4 D9
+86 D9 C4 D9 6E D7 00 00 00 00 66 DA E6 D0 3A 40
+0C 00 39 40 CA 21 38 40 CC 21 C6 3F 3A 40 0E 00
+39 40 CC 21 38 40 CA 21 B9 3F 82 43 CC 21 30 4D
+92 42 CA 21 DA 21 30 4D C2 D0 2A D1 30 D1 40 D1
+3A 4E 82 4A C8 21 2E 4E 82 4E C6 21 3D 40 10 00
+09 4A 08 49 29 83 18 48 FE FF 0E 98 FC 2B 89 48
+00 00 1D 83 F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41
+30 4D 6E CD 09 50 57 52 5F 53 54 41 54 45 84 12
+38 D1 0C D1 9C DA 08 D0 09 52 53 54 5F 53 54 41
+54 45 92 42 0E 18 82 D1 92 42 0C 18 84 D1 EF 3F
+74 D1 08 50 57 52 5F 48 45 52 45 00 92 42 C8 21
+82 D1 92 42 C6 21 84 D1 30 4D 88 D1 08 52 53 54
+5F 48 45 52 45 00 92 42 C8 21 0E 18 92 42 C6 21
+0C 18 EC 3F F8 CF 04 57 49 50 45 00 39 40 10 00
+29 83 B9 43 80 FF FC 23 B2 40 E0 C6 DE C6 B2 40
+46 D2 44 D2 B2 40 0C D1 0E 18 B2 40 9C DA 0C 18
+30 12 92 D1 B2 40 86 C7 84 C7 B2 40 08 C8 06 C8
+B2 40 98 C6 96 C6 B2 40 18 00 0A 18 37 40 1A C4
+36 40 92 C4 35 40 0E C4 34 40 00 C4 B2 40 0A 00
+DC 21 B2 40 20 00 B4 21 30 41 D6 D1 04 57 41 52
+4D 00 30 40 46 D2 3D 40 7A D2 92 C3 30 01 1E 42
+08 18 0E 93 11 24 D2 B3 00 02 02 20 3E E3 1E 53
+F2 D0 03 00 0A 02 3E 90 0A 00 B8 27 3E 90 16 00
+B5 2F 2E 93 84 27 8D 2F 30 4D 1E C8 06 0D 1B 5B
+37 6D 23 00 D6 C7 34 C6 1E C8 19 46 61 73 74 46
+6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54 68 6F 6F 72
+65 6E 73 20 D6 C7 14 C8 30 FF DC CA B8 C4 24 C6
+1E C8 0A 62 79 74 65 73 20 66 72 65 65 00 3C C6
+D6 CC BE CF 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
+B2 40 04 A5 20 01 7A D2 B2 40 88 5A CC 01 B2 D0
+00 08 04 02 B2 D3 06 02 B2 43 02 02 B2 D0 FF FE
+26 02 B2 43 22 02 B2 43 42 02 B2 D3 46 02 B2 43
+62 02 B2 D3 66 02 B2 40 00 A5 60 01 B2 40 FF 1E
+80 01 B2 40 B0 00 82 01 B2 40 1E 00 84 01 39 40
+10 00 82 43 88 01 92 D2 5E 01 08 18 38 40 59 14
+18 83 FE 23 19 83 FA 23 39 40 00 08 29 83 89 43
+00 20 FC 23 39 40 1E 00 29 83 B9 40 D8 D2 E2 FF
+FB 23 B2 40 26 C7 EC FF B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 92 C3 00 05 92 D3
+1A 05 3F 40 80 20 31 40 E0 20 30 12 42 D2 4B 3F
+C4 D2 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
+39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
+19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
+30 4D EE CD 86 5B 54 48 45 4E 5D 00 30 4D B4 D3
+86 5B 45 4C 53 45 5D 00 87 12 14 C8 00 00 C6 C4
+7E CB 80 C8 60 CB 34 C4 40 C6 2A D4 44 C4 1E C8
+06 5B 54 48 45 4E 5D 00 8A D3 4A C6 FA D3 F8 C7
+D0 C4 58 C4 4A C6 D0 D3 2A C4 44 C4 1E C8 06 5B
+45 4C 53 45 5D 00 8A D3 4A C6 18 D4 F8 C7 D0 C4
+58 C4 4A C6 CE D3 2A C4 1E C8 04 5B 49 46 5D 00
+8A D3 4A C6 D0 D3 3C C6 CE D3 F8 C7 1E C8 05 0D
+0A 6B 6F 20 D6 C7 8C C7 6E CB 3C C6 D0 D3 C0 D3
+84 5B 49 46 5D 00 0E 93 3E 4F BE 27 30 4D 40 D4
+89 5B 44 45 46 49 4E 45 44 5D 87 12 7E CB 80 C8
+EE C8 6A C4 2A C4 50 D4 8B 5B 55 4E 44 45 46 49
+4E 45 44 5D 87 12 7E CB 80 C8 EE C8 6A C4 00 C5
+2A C4 84 D4 3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F
+30 40 92 D1 84 D0 06 4D 41 52 4B 45 52 00 B0 12
+F4 CD BA 40 84 12 FC FF BA 40 82 D4 FE FF 9A 42
+C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21 30 40
+3C CE 1C 15 B0 12 2A C4 80 C8 EE C8 4A C6 D8 D4
+E2 C9 40 C6 0A CD F2 D4 DA D4 39 4E 39 80 86 12
+08 24 19 53 02 20 2E 4E 04 3C 2E 53 19 53 01 24
+2E 82 1B 17 30 41 3E 40 28 00 B0 12 C2 D4 19 42
+C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00 1C 15
+12 12 C4 21 92 53 C4 21 B0 12 2A C4 80 C8 E2 C9
+40 C6 30 D5 26 D5 21 53 3E 90 10 00 7D 2D E1 2B
+32 D5 B2 41 C4 21 DD 3F 87 12 7E CB 74 C8 40 D5
+0C 43 1B 42 C6 21 A2 53 C6 21 6A 4E 3E 4F 7A 90
+23 00 27 20 92 53 C4 21 B0 12 C2 D4 3C 40 00 03
+0E 93 1C 24 3C 40 10 03 1E 93 18 24 3C 40 20 03
+2E 93 14 24 3C 40 20 02 2E 92 10 24 3C 40 30 02
+3E 92 0C 24 3C 40 30 03 3E 93 08 24 3C 40 30 00
+19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 4F 3D 41
+30 4D 7A 90 26 00 07 20 3C 40 10 02 92 53 C4 21
+B0 12 C2 D4 ED 3F 7A 90 40 00 16 20 3C 40 20 00
+92 53 C4 21 B0 12 0E D5 0C 20 3C 50 10 00 3E 40
+2B 00 B0 12 0E D5 92 92 C0 21 C4 21 02 24 92 53
+C4 21 8E 10 0C 5E DA 3F B0 12 0E D5 FA 23 3C 50
+10 00 B0 12 F6 D4 EF 3F 0C 43 1B 42 C6 21 A2 53
+C6 21 87 12 7E CB 74 C8 0A D6 FE 90 26 00 00 00
+3E 40 20 00 03 20 3C 50 82 00 C8 3F B0 12 0E D5
+E1 23 3C 50 80 00 B0 12 F6 D4 DC 3F D6 C6 04 52
+45 54 49 00 87 12 14 C8 00 13 EC CA 2A C4 14 C8
+2C 00 38 D5 02 D6 48 D6 09 4B 2E 4E 0E DC A4 3F
+38 CF 03 4D 4F 56 84 12 3E D6 00 40 52 D6 05 4D
+4F 56 2E 42 84 12 3E D6 40 40 00 00 03 41 44 44
+84 12 3E D6 00 50 6C D6 05 41 44 44 2E 42 84 12
+3E D6 40 50 78 D6 04 41 44 44 43 00 84 12 3E D6
+00 60 86 D6 06 41 44 44 43 2E 42 00 84 12 3E D6
+40 60 2E D6 04 53 55 42 43 00 84 12 3E D6 00 70
+A4 D6 06 53 55 42 43 2E 42 00 84 12 3E D6 40 70
+B2 D6 03 53 55 42 84 12 3E D6 00 80 C2 D6 05 53
+55 42 2E 42 84 12 3E D6 40 80 1A CF 03 43 4D 50
+84 12 3E D6 00 90 DC D6 05 43 4D 50 2E 42 84 12
+3E D6 40 90 08 CF 04 44 41 44 44 00 84 12 3E D6
+00 A0 F6 D6 06 44 41 44 44 2E 42 00 84 12 3E D6
+40 A0 E8 D6 03 42 49 54 84 12 3E D6 00 B0 14 D7
+05 42 49 54 2E 42 84 12 3E D6 40 B0 20 D7 03 42
+49 43 84 12 3E D6 00 C0 2E D7 05 42 49 43 2E 42
+84 12 3E D6 40 C0 3A D7 03 42 49 53 84 12 3E D6
+00 D0 48 D7 05 42 49 53 2E 42 84 12 3E D6 40 D0
+00 00 03 58 4F 52 84 12 3E D6 00 E0 62 D7 05 58
+4F 52 2E 42 84 12 3E D6 40 E0 94 D6 03 41 4E 44
+84 12 3E D6 00 F0 7C D7 05 41 4E 44 2E 42 84 12
+3E D6 40 F0 7E CB 38 D5 9A D7 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4F 3F CE D6 03 52 52 43
+84 12 94 D7 00 10 AC D7 05 52 52 43 2E 42 84 12
+94 D7 40 10 B8 D7 04 53 57 50 42 00 84 12 94 D7
+80 10 C6 D7 03 52 52 41 84 12 94 D7 00 11 D4 D7
+05 52 52 41 2E 42 84 12 94 D7 40 11 E0 D7 03 53
+58 54 84 12 94 D7 80 11 00 00 04 50 55 53 48 00
+84 12 94 D7 00 12 FA D7 06 50 55 53 48 2E 42 00
+84 12 94 D7 40 12 54 D7 04 43 41 4C 4C 00 84 12
+94 D7 80 12 1A 53 0E 4A 87 12 34 C6 1E C8 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 88 CC 7E CB
+74 C8 44 D8 92 53 C4 21 3E 40 2C 00 B0 12 2A C4
+80 C8 E2 C9 40 C6 0A CD F8 D5 5C D8 0A 4E 3E 4F
+1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
+0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92
+D1 2F 8A 10 5A 06 8F 3F EE D7 04 52 52 43 4D 00
+84 12 3E D8 50 00 8A D8 04 52 52 41 4D 00 84 12
+3E D8 50 01 98 D8 04 52 4C 41 4D 00 84 12 3E D8
+50 02 A6 D8 04 52 52 55 4D 00 84 12 3E D8 50 03
+08 D8 05 50 55 53 48 4D 84 12 3E D8 00 15 C2 D8
+04 50 4F 50 4D 00 84 12 3E D8 00 17 B4 D8 03 53
+3E 3D 85 12 00 38 DE D8 02 53 3C 00 85 12 00 34
+D0 D8 03 30 3E 3D 85 12 00 30 F2 D8 02 30 3C 00
+85 12 00 30 00 00 02 55 3C 00 85 12 00 2C 06 D9
+03 55 3E 3D 85 12 00 28 FC D8 03 30 3C 3E 85 12
+00 24 1A D9 02 30 3D 00 85 12 00 20 00 00 02 49
+46 00 1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 0E 4A
+30 4D 10 D9 04 54 48 45 4E 00 1A 42 C6 21 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 63 2F
+88 DA 00 00 30 4D 04 D7 04 45 4C 53 45 00 1A 42
+C6 21 BA 40 00 3C 00 00 A2 53 C6 21 2F 83 8F 4A
+00 00 E3 3F 44 D9 05 55 4E 54 49 4C 3A 4F 08 4E
+3E 4F 19 42 C6 21 2A 83 0A 89 0A 11 3A 90 00 FE
+42 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21
+30 4D 88 D7 05 41 47 41 49 4E 0A 4E 38 40 00 3C
+E7 3F 00 00 05 57 48 49 4C 45 87 12 32 D9 76 C4
+2A C4 E8 D8 06 52 45 50 45 41 54 00 87 12 BA D9
+4A D9 2A C4 E6 D9 3D 41 08 4E 3E 4F 2A 48 B2 92
+C4 21 CD 2F 98 42 C6 21 00 00 30 4D 18 D8 03 42
+57 31 84 12 E4 D9 00 00 FE D9 03 42 57 32 84 12
+E4 D9 00 00 0A DA 03 42 57 33 84 12 E4 D9 00 00
+22 DA 3D 41 1A 42 C6 21 28 4E B2 92 C4 21 90 2B
+BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D
+00 00 03 46 57 31 84 12 20 DA 00 00 42 DA 03 46
+57 32 84 12 20 DA 00 00 4E DA 03 46 57 33 84 12
+20 DA 00 00 00 00 05 3F 47 4F 54 4F 3E 90 00 30
 07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0 00 08
-30 4D A2 DC 04 47 4F 54 4F 00 87 12 16 DB F2 CD
-00 CC 2A C4 00 00 05 3F 47 4F 54 4F 87 12 AC DC
-F2 CD 00 CC 2A C4 00 00 03 4A 4D 50 87 12 F2 CD
-F8 DB 2A C4 D6 DC 04 3F 4A 4D 50 00 87 12 AC DC
-F2 CD 78 C4 CA DB 2A C4
+87 12 FC CC 16 CB 2A C4 5A DA 04 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
 @FFFE
-16 D6
+D8 D2
 q
diff --git a/binaries/MSP_EXP430FR4133_4MHz.txt b/binaries/MSP_EXP430FR4133_4MHz.txt
deleted file mode 100644 (file)
index e1fea1f..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-@1800
-10 00 02 00 21 BB A0 0F 05 00 18 00 08 DD CC D2
-2C 01 7B B0 FC C7 0E C8
-@C400
-2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
-8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C4
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C4 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C4 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C4 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C4 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C4 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C4 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C4 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C4 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C5 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C4 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C5 02 31 2D 00
-1E 83 30 4D D8 C4 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C5
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C5 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C5 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C4 01 3E 3E 8F F4 3B EB 37 0E C5 02 42 4C 00
-85 12 20 00 AC C5 04 42 41 53 45 00 85 12 DC 21
-C8 C4 05 53 54 41 54 45 85 12 BE 21 96 C5 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 C5 06 55 4D 2F
-4D 4F 44 00 30 12 62 C4 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C4 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C5
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 C5 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 C6
-02 23 53 00 87 12 32 C6 6A C6 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C6 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C5 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C5
-02 44 2E 00 87 12 D2 C5 44 C4 B0 C4 4C C5 64 C6
-BC C4 A2 C6 7E C6 14 C9 DC C8 2A C4 DC C5 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C4
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C6 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 C4
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A C6
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C6 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C6 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C5 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C7 03 4B 45 59 30 40 A0 C7
-18 42 0C 05 2F 83 8F 4E 00 00 B0 12 FC C7 92 B3
-1C 05 FD 27 1E 42 0C 05 B0 12 0E C8 30 4D 00 C7
-06 41 43 43 45 50 54 00 3C 40 6A C8 3B 40 34 C8
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C8 92 B3 1C 05 05 24 18 42 0C 05 38 90
-0A 00 04 20 21 53 39 40 22 C8 4D 15 A2 B3 1C 05
-FD 27 B2 40 11 00 0E 05 F2 C2 03 02 30 41 B2 40
-13 00 0E 05 F2 D2 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C8 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 0C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 1C 05 FD 27 82 48 0E 05 30 4D 60 C8
-2D 83 92 B3 1C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C6 04 45 4D 49 54 00 30 40 8C C8 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 C8 04 45 43 48
-4F 00 B2 40 82 48 58 C8 82 43 DE 21 30 4D E0 C6
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C8 92 43
-DE 21 30 4D 9C C6 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C8 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C8 EF 3F 00 C9
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C7 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C9 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C9 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C7 02 43
-52 00 30 40 46 C9 87 12 52 C9 02 0D 0A 00 14 C9
-2A C4 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C8 82 53 22 00 82 43 B4 21
-87 12 34 C4 52 C9 0A CC 34 C4 22 00 B6 C9 80 C9
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 C8 82 2E
-22 00 87 12 6C C9 34 C4 14 C9 0A CC 2A C4 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
-60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
-18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
-F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
-CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
-0C 4E 65 4C 74 40 80 00 3B 40 CA 21 3E 4B 0E 93
-1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
-FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
-0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
-09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C4 34 40 00 C4 30 4D 0E C9 03 55
-4D 2A 2C 4F 0B 43 09 43 08 43 1A 43 0E BA 02 24
-09 5C 08 6B 0C 5C 0B 6B 0A 5A F8 2B 8F 49 00 00
-0E 48 30 4D A2 C5 07 3E 4E 55 4D 42 45 52 2C 4F
-0B 4E 1A 42 DC 21 68 4C 78 80 30 00 78 90 0A 00
-05 28 78 80 07 00 78 90 0A 00 1F 28 08 9A 22 C3
-1C 2C 5D 15 1C 4F 02 00 0E 4A 3D 40 D0 CA D2 3F
-D2 CA 81 49 02 00 1C 4F 04 00 1E 41 04 00 3D 40
-E4 CA C8 3F E6 CA 39 51 3E 61 8F 49 04 00 8F 4E
-02 00 3A 17 1C 53 1B 83 D6 23 8F 4C 00 00 0E 4B
-30 4D 1B 42 DC 21 0C 43 2D 15 3D 40 4E CB 0A 4B
-3F 82 8F 4E 06 00 8F 43 04 00 8F 43 02 00 0C 4E
-7B 4C 68 4C 78 90 2D 00 04 28 BE 23 B1 43 02 00
-E1 3F 2A 43 78 80 25 00 07 24 3A 52 68 53 04 24
-3A 40 10 00 58 83 AF 23 1C 53 1B 83 EA 3F 50 CB
-31 24 2D 83 78 90 28 00 CD 27 32 B0 00 02 2A 20
-32 D0 00 02 78 90 F7 00 C5 27 78 90 F5 00 22 20
-09 43 8F 49 02 00 5B 83 09 4B 09 5C 69 49 79 80
-30 00 79 90 0A 00 05 28 79 80 07 00 79 90 0A 00
-0A 28 09 9A 08 2C 8F 49 00 00 0E 4A 2C 15 B0 12
-E8 C5 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-0E 4B 4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0
-00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00
-04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00
-BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02
-01 20 2F 53 30 4D AC C8 07 45 58 45 43 55 54 45
-0A 4E 3E 4F 00 4A 26 C5 01 2C 1A 42 C6 21 A2 53
-C6 21 8A 4E 00 00 3E 4F 30 4D 08 CC 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52
-C6 21 BA 40 34 C4 00 00 8A 4E 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00
-0E 49 EB 3F 30 4D 3E C9 05 43 4F 55 4E 54 2F 83
-1E 53 8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21
-B2 4F C2 21 3E 4F 82 43 C4 21 30 4D 87 12 6C CC
-B0 C5 B6 C9 86 CC 3D 40 8E CC C1 22 3C 3E 90 CC
-0A 4E 3E 4F 3D 40 A6 CC 34 27 3D 40 80 CC 1A E2
-BE 21 B3 27 AD 23 A8 CC 3E 4F 3D 40 80 CC BA 23
-DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
-72 CF CD 3F F8 CB 08 45 56 41 4C 55 41 54 45 00
-39 40 C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A C4
-7C CC E4 CC B2 41 C4 21 B2 41 C2 21 B2 41 C0 21
-3D 41 30 4D 6C C5 04 51 55 49 54 00 82 43 08 18
-31 40 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12
-2A C4 42 C9 92 C8 DC C8 7C CC DE C4 70 C5 52 C9
-0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 70 CD
-34 C4 30 FF F2 C6 8A C5 52 C9 0A 46 52 41 4D 20
-66 75 6C 6C 21 00 70 CD 24 C7 12 CD C0 C7 05 41
-42 4F 52 54 3F 40 80 20 D1 3F 4E CD 86 41 42 4F
-52 54 22 00 87 12 6C C9 34 C4 70 CD 0A CC 2A C4
-8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 32 D5
-B0 12 FC C7 92 C3 1C 05 38 40 A8 2A 39 42 09 59
-03 43 19 83 FD 23 18 83 F9 23 92 B3 1C 05 F2 23
-87 12 AC D4 34 C4 DE 21 F2 C4 B2 C8 52 C9 04 1B
-5B 37 6D 00 14 C9 54 C4 28 C7 CC CD 42 C9 52 C9
-05 6C 69 6E 65 3A 14 C9 40 C5 D2 C6 14 C9 52 C9
-04 1B 5B 30 6D 00 14 C9 54 CD 00 00 83 5B 27 5D
-87 12 F2 CD 34 C4 34 C4 0A CC 0A CC 2A C4 08 CA
-01 27 87 12 B0 C5 B6 C9 0E CA 28 C7 00 CE 2A C4
-B0 CC CE C5 81 5C 92 42 C0 21 C4 21 30 4D DC CD
-81 5B 82 43 BE 21 30 4D 04 CE 01 5D B2 43 BE 21
-30 4D BE 4F 02 00 3E 4F 30 4D 72 C7 82 49 53 00
-87 12 C8 C5 F2 C4 28 C7 44 CE E0 CD 34 C4 22 CE
-0A CC 2A C4 F2 CD 22 CE 2A C4 2C CE 09 49 4D 4D
-45 44 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00
-30 4D 68 C9 87 52 45 43 55 52 53 45 19 42 C6 21
-99 42 BA 21 00 00 A2 53 C6 21 30 4D F6 CC 88 50
-4F 53 54 50 4F 4E 45 00 87 12 B0 C5 B6 C9 0E CA
-54 C4 28 C7 00 CE 70 C5 28 C7 A8 CE 34 C4 34 C4
-0A CC 0A CC 34 C4 0A CC 0A CC 2A C4 10 CE 81 3B
-82 93 BE 21 A8 27 87 12 34 C4 2A C4 0A CC 46 CF
-12 CE 2A C4 AE CE 07 3A 4E 4F 4E 41 4D 45 2F 83
-8F 4E 00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40
-02 02 B0 12 32 CF BA 40 87 12 FC FF A2 83 C6 21
-B2 43 BE 21 82 4F BC 21 30 4D C6 CE 01 3A 30 12
-E6 CE 87 12 92 C9 B0 C5 B6 C9 0C CF 3D 41 08 4E
-7A 4E 5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0
-1E 00 09 5E 3E 4F BA 40 30 40 00 00 BA 40 F8 CE
-02 00 82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52
-82 4A C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21
-19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12
-52 C9 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
-68 21 7C CD B0 C9 08 56 41 52 49 41 42 4C 45 00
-B0 12 02 CF BA 40 86 12 FC FF E4 3F 58 CC 08 43
-4F 4E 53 54 41 4E 54 00 B0 12 02 CF BA 40 85 12
-FC FF 8A 4E FE FF 3E 4F D5 3F 8E CF 06 43 52 45
-41 54 45 00 B0 12 02 CF BA 40 85 12 FC FF 8A 4A
-FE FF C8 3F C6 CC 05 44 4F 45 53 3E 1A 42 BA 21
-BA 40 84 12 00 00 8A 4D 02 00 3D 41 30 4D C6 CF
-05 44 45 46 45 52 30 12 54 CF 8B 3F 96 CA 05 3E
-42 4F 44 59 2E 52 30 4D AC CF 04 43 4F 44 45 00
-B0 12 02 CF 2A 82 82 4A C6 21 87 12 F4 CE D6 D2
-A8 D2 2A C4 FA CF 07 43 4F 44 45 4E 4E 4D 87 12
-CE CE 12 CE 04 D0 2A C4 00 00 07 45 4E 44 43 4F
-44 45 87 12 F0 D2 46 CF 2A C4 5C CD 03 41 53 4D
-92 42 DA 21 EC 21 B2 40 AC D2 DA 21 D9 3F 2A D0
-06 45 4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F
-00 00 05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12
-00 00 A2 53 C6 21 B2 43 BE 21 30 40 F0 D2 00 00
-05 4C 4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00
-BA 40 2A C4 02 00 A2 52 C6 21 ED 3F 4C CE 85 48
-49 32 4C 4F 87 12 F2 C6 CE D0 0A CC 12 CE D6 D2
-A8 D2 2A C4 9E D0 82 49 46 00 2F 83 8F 4E 00 00
-1E 42 C6 21 A2 52 C6 21 BE 40 28 C7 00 00 2E 53
-30 4D E0 CF 84 45 4C 53 45 00 A2 52 C6 21 1A 42
-C6 21 BA 40 24 C7 FC FF 8E 4A 00 00 2A 83 0E 4A
-30 4D 6E CA 84 54 48 45 4E 00 9E 42 C6 21 00 00
-3E 4F 30 4D 16 D0 85 42 45 47 49 4E 30 40 F2 C6
-F4 D0 85 55 4E 54 49 4C 39 40 28 C7 A2 52 C6 21
-1A 42 C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D
-3C D0 85 41 47 41 49 4E 39 40 24 C7 EF 3F 76 CF
-85 57 48 49 4C 45 87 12 BA D0 78 C4 2A C4 64 CE
-86 52 45 50 45 41 54 00 87 12 38 D1 FA D0 2A C4
-D4 D0 82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21
-1E 42 C6 21 BE 40 3C C7 FE FF A2 53 00 20 1A 42
-00 20 8A 43 00 00 30 4D 1C CC 84 4C 4F 4F 50 00
-39 40 5E C7 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF
-8A 4E FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93
-03 24 8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C7 85 2B
-4C 4F 4F 50 39 40 4C C7 E5 3F 8A D1 85 4C 45 41
-56 45 1A 42 C6 21 BA 40 6E C7 00 00 BA 40 24 C7
-02 00 B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42
-00 20 89 4A 00 00 30 4D CC D1 04 4D 4F 56 45 00
-0A 4E 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24
-06 2C F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A
-09 5A 19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D
-40 D1 0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12
-B4 CF 34 C4 10 00 34 C4 00 00 3C C7 34 C4 00 00
-0A CC 5E C7 4C D2 F2 C6 34 C4 C8 21 44 C4 F2 C4
-0A CC FA C4 CC CF 34 C4 CA 21 FA C4 2A C4 F0 CD
-05 46 4F 52 54 48 84 12 66 D2 D0 D2 04 D6 0E D3
-70 D2 B6 D0 BE D1 3A D4 00 D3 D0 D4 EA D4 12 D1
-76 D5 00 00 0E D4 1A CE EE CF 00 00 32 D1 09 41
-53 53 45 4D 42 4C 45 52 84 12 66 D2 F2 DB 5A DC
-A6 DB C4 DC 6C DB E8 DC 98 D8 00 00 62 DB 12 DC
-C4 DB 02 DC A8 D9 00 00 00 00 F6 DC 9A D2 9E D2
-04 41 4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40
-CC 21 9D 3F 7E CE 08 50 52 45 56 49 4F 55 53 00
-3A 40 0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E C9
-04 4F 4E 4C 59 00 82 43 CC 21 30 4D 62 D1 0B 44
-45 46 49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21
-30 4D 06 D1 07 43 4F 4D 50 41 52 45 0C 4E 38 4F
-3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83
-07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D
-1E 43 30 4D FC CE 86 5B 54 48 45 4E 5D 00 30 4D
-56 D3 86 5B 45 4C 53 45 5D 00 87 12 34 C4 00 00
-36 C5 B0 C5 B6 C9 5E CC 44 C4 28 C7 D0 D3 8A C4
-8A C4 52 C9 06 5B 54 48 45 4E 5D 00 2C D3 32 C7
-9E D3 36 C9 40 C5 54 C4 32 C7 72 D3 2A C4 8A C4
-8A C4 52 C9 06 5B 45 4C 53 45 5D 00 2C D3 32 C7
-BE D3 36 C9 40 C5 54 C4 32 C7 70 D3 2A C4 52 C9
-04 5B 49 46 5D 00 2C D3 32 C7 72 D3 24 C7 70 D3
-36 C9 52 C9 05 0D 0A 6B 6F 20 14 C9 92 C8 6C CC
-24 C7 72 D3 62 D3 84 5B 49 46 5D 00 0E 93 3E 4F
-BC 27 30 4D E6 D3 89 5B 44 45 46 49 4E 45 44 5D
-87 12 B0 C5 B6 C9 0E CA 6C C4 2A C4 F6 D3 8B 5B
-55 4E 44 45 46 49 4E 45 44 5D 87 12 B0 C5 B6 C9
-0E CA 6C C4 64 C5 2A C4 2A D4 3D 41 B2 4E 0E 18
-A2 4E 0C 18 3E 4F 44 3C FA D1 06 4D 41 52 4B 45
-52 00 B0 12 02 CF BA 40 84 12 FC FF BA 40 28 D4
-FE FF 9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52
-C6 21 30 40 4C CF 76 D2 06 D3 1A D3 6E D4 3A 4E
-82 4A C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A
-08 49 29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00
-1D 83 F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D
-E6 D2 09 50 57 52 5F 53 54 41 54 45 84 12 66 D4
-CC D2 08 DD 50 D1 09 52 53 54 5F 53 54 41 54 45
-92 42 0E 18 B0 D4 92 42 0C 18 B2 D4 EF 3F A2 D4
-08 50 57 52 5F 48 45 52 45 00 92 42 C8 21 B0 D4
-92 42 C6 21 B2 D4 30 4D B6 D4 08 52 53 54 5F 48
-45 52 45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18
-EC 3F 32 D2 04 57 49 50 45 00 39 40 10 00 29 83
-B9 43 80 FF FC 23 B2 40 26 C8 24 C8 B2 40 80 D5
-7E D5 B2 40 CC D2 0E 18 B2 40 08 DD 0C 18 30 12
-C0 D4 B2 40 8C C8 8A C8 B2 40 46 C9 44 C9 B2 40
-A0 C7 9E C7 B2 40 18 00 0A 18 37 40 1A C4 36 40
-BC C4 35 40 0E C4 34 40 00 C4 39 40 10 00 29 83
-89 43 E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00
-B4 21 30 41 04 D5 04 57 41 52 4D 00 30 40 80 D5
-3D 40 B4 D5 92 C3 30 01 1E 42 08 18 0E 93 11 24
-D2 B3 00 02 02 20 3E E3 1E 53 F2 D0 03 00 0A 02
-3E 90 0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27
-87 2F 30 4D 52 C9 06 0D 1B 5B 37 6D 23 00 14 C9
-E2 C6 52 C9 1F 46 61 73 74 46 6F 72 74 68 20 56
-33 30 30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72
-65 6E 73 20 14 C9 34 C4 80 FF F2 C6 28 C5 D2 C6
-52 C9 0B 62 79 74 65 73 20 66 72 65 65 20 24 C7
-CC CD 24 D3 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
-B2 40 04 A5 20 01 B2 40 88 5A CC 01 B2 D0 00 08
-04 02 B2 D3 06 02 B2 43 02 02 B2 40 00 01 24 02
-B2 40 FF FE 22 02 B2 D0 FF FE 26 02 B2 43 42 02
-B2 D3 46 02 B2 43 62 02 B2 D3 66 02 B2 40 00 A5
-60 01 B2 40 FF 1E 80 01 B2 40 B4 00 82 01 B2 40
-79 00 84 01 39 40 40 00 82 43 88 01 92 D2 5E 01
-08 18 38 40 59 14 18 83 FE 23 19 83 FA 23 39 40
-00 08 29 83 89 43 00 20 FC 23 39 40 1E 00 29 83
-B9 40 16 D6 E2 FF FB 23 B2 40 2C C8 EC FF B2 40
-81 00 00 05 92 42 02 18 06 05 92 42 04 18 08 05
-92 C3 00 05 92 D3 1A 05 3F 40 80 20 31 40 E0 20
-30 12 7C D5 3F 3F 38 40 C0 21 39 48 2A 48 09 5A
-1A 52 C4 21 09 9A 03 24 7E 9A FC 27 1A 83 0E 4A
-2A 88 82 4A C4 21 30 4D 1C 15 B0 12 2A C4 B6 C9
-0E CA 32 C7 FE D6 02 CB 28 C7 00 CE 20 D7 00 D7
-29 4E 39 90 86 12 02 20 2E 53 0A 3C 39 90 85 12
-03 20 1E 4E 02 00 04 3C 39 90 84 12 01 20 2E 52
-1B 17 30 41 3E 40 28 00 B0 12 E8 D6 19 42 C6 21
-A2 53 C6 21 89 4E 00 00 3E 40 29 00 1C 15 12 12
-C4 21 92 53 C4 21 B0 12 2A C4 B6 C9 02 CB 28 C7
-5E D7 54 D7 21 53 3E 90 10 00 83 2D E1 2B 60 D7
-B2 41 C4 21 DD 3F 87 12 B0 C5 C6 D6 6E D7 0C 43
-1B 42 C6 21 A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00
-2D 20 92 53 C4 21 B0 12 E8 D6 0E 93 03 20 3C 40
-00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C 2E 93
-03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40 20 02
-12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93 03 20
-3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 21 A2 53
-C6 21 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00
-07 20 3C 40 10 02 92 53 C4 21 B0 12 E8 D6 ED 3F
-7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12
-3C D7 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 3C D7
-92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E
-DA 3F B0 12 3C D7 FA 23 3C 50 10 00 B0 12 24 D7
-EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 87 12 B0 C5
-C6 D6 44 D8 FE 90 26 00 00 00 3E 40 20 00 03 20
-3C 50 82 00 C8 3F B0 12 3C D7 E1 23 3C 50 80 00
-B0 12 24 D7 DC 3F 1C C8 04 52 45 54 49 00 87 12
-34 C4 00 13 0A CC 2A C4 34 C4 2C 00 66 D7 3C D8
-82 D8 2E 4E 0E DC 09 4B A4 3F 80 D0 03 4D 4F 56
-84 12 78 D8 00 40 8C D8 05 4D 4F 56 2E 42 84 12
-78 D8 40 40 00 00 03 41 44 44 84 12 78 D8 00 50
-A6 D8 05 41 44 44 2E 42 84 12 78 D8 40 50 B2 D8
-04 41 44 44 43 00 84 12 78 D8 00 60 C0 D8 06 41
-44 44 43 2E 42 00 84 12 78 D8 40 60 68 D8 04 53
-55 42 43 00 84 12 78 D8 00 70 DE D8 06 53 55 42
-43 2E 42 00 84 12 78 D8 40 70 EC D8 03 53 55 42
-84 12 78 D8 00 80 FC D8 05 53 55 42 2E 42 84 12
-78 D8 40 80 62 D0 03 43 4D 50 84 12 78 D8 00 90
-16 D9 05 43 4D 50 2E 42 84 12 78 D8 40 90 50 D0
-04 44 41 44 44 00 84 12 78 D8 00 A0 30 D9 06 44
-41 44 44 2E 42 00 84 12 78 D8 40 A0 22 D9 03 42
-49 54 84 12 78 D8 00 B0 4E D9 05 42 49 54 2E 42
-84 12 78 D8 40 B0 5A D9 03 42 49 43 84 12 78 D8
-00 C0 68 D9 05 42 49 43 2E 42 84 12 78 D8 40 C0
-74 D9 03 42 49 53 84 12 78 D8 00 D0 82 D9 05 42
-49 53 2E 42 84 12 78 D8 40 D0 00 00 03 58 4F 52
-84 12 78 D8 00 E0 9C D9 05 58 4F 52 2E 42 84 12
-78 D8 40 E0 CE D8 03 41 4E 44 84 12 78 D8 00 F0
-B6 D9 05 41 4E 44 2E 42 84 12 78 D8 40 F0 B0 C5
-66 D7 D4 D9 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F 08 D9 03 52 52 43 84 12 CE D9 00 10
-E6 D9 05 52 52 43 2E 42 84 12 CE D9 40 10 F2 D9
-04 53 57 50 42 00 84 12 CE D9 80 10 00 DA 03 52
-52 41 84 12 CE D9 00 11 0E DA 05 52 52 41 2E 42
-84 12 CE D9 40 11 1A DA 03 53 58 54 84 12 CE D9
-80 11 00 00 04 50 55 53 48 00 84 12 CE D9 00 12
-34 DA 06 50 55 53 48 2E 42 00 84 12 CE D9 40 12
-8E D9 04 43 41 4C 4C 00 84 12 CE D9 80 12 1A 53
-0E 4A 87 12 E2 C6 52 C9 0D 6F 75 74 20 6F 66 20
-62 6F 75 6E 64 73 7C CD B0 C5 C6 D6 7E DA 92 53
-C4 21 3E 40 2C 00 B0 12 2A C4 B6 C9 02 CB 28 C7
-00 CE 32 D8 96 DA 0A 4E 3E 4F 1A 83 E0 33 29 4E
-59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
-10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06
-8F 3F 28 DA 04 52 52 43 4D 00 84 12 78 DA 50 00
-C4 DA 04 52 52 41 4D 00 84 12 78 DA 50 01 D2 DA
-04 52 4C 41 4D 00 84 12 78 DA 50 02 E0 DA 04 52
-52 55 4D 00 84 12 78 DA 50 03 42 DA 05 50 55 53
-48 4D 84 12 78 DA 00 15 FC DA 04 50 4F 50 4D 00
-84 12 78 DA 00 17 85 12 00 3C EE DA 03 53 3E 3D
-85 12 00 38 1C DB 02 53 3C 00 85 12 00 34 0A DB
-03 30 3E 3D 85 12 00 30 30 DB 02 30 3C 00 85 12
-00 30 00 00 02 55 3C 00 85 12 00 2C 44 DB 03 55
-3E 3D 85 12 00 28 3A DB 03 30 3C 3E 85 12 00 24
-58 DB 02 30 3D 00 85 12 00 20 00 00 02 49 46 00
-1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D
-4E DB 04 54 48 45 4E 00 1A 42 C6 21 08 4E 3E 4F
-09 48 29 53 0A 89 0A 11 3A 90 00 02 61 2F 88 DA
-00 00 30 4D 3E D9 04 45 4C 53 45 00 1A 42 C6 21
-BA 40 00 3C 00 00 A2 53 C6 21 2F 83 8F 4A 00 00
-E3 3F 82 DB 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
-19 42 C6 21 2A 83 0A 89 0A 11 3A 90 00 FE 40 3B
-3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D
-C2 D9 05 41 47 41 49 4E 87 12 16 DB CA DB 2A C4
-00 00 05 57 48 49 4C 45 87 12 70 DB 78 C4 2A C4
-26 DB 06 52 45 50 45 41 54 00 87 12 16 DB CA DB
-88 DB 2A C4 26 DC 3D 41 2E 4E 08 4E 3E 4F 2A 48
-0A 93 88 43 00 00 CA 23 98 42 C6 21 00 00 30 4D
-52 DA 03 42 57 31 84 12 24 DC E0 21 42 DC 03 42
-57 32 84 12 24 DC E2 21 4E DC 03 42 57 33 84 12
-24 DC E4 21 66 DC 3D 41 1A 42 C6 21 2E 4E 28 4E
-08 93 8E 43 00 00 8B 23 BA 4F 00 00 A2 53 C6 21
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12
-64 DC E6 21 8A DC 03 46 57 32 84 12 64 DC E8 21
-96 DC 03 46 57 33 84 12 64 DC EA 21 3E 90 00 30
-07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0 00 08
-30 4D A2 DC 04 47 4F 54 4F 00 87 12 16 DB F2 CD
-00 CC 2A C4 00 00 05 3F 47 4F 54 4F 87 12 AC DC
-F2 CD 00 CC 2A C4 00 00 03 4A 4D 50 87 12 F2 CD
-F8 DB 2A C4 D6 DC 04 3F 4A 4D 50 00 87 12 AC DC
-F2 CD 78 C4 CA DB 2A C4
-@FFFE
-16 D6
-q
index ff617cf..92dadc0 100644 (file)
 @1800
-10 00 04 00 51 55 40 1F 05 00 18 00 08 DD CC D2
-2C 01 7B B0 FC C7 0E C8
+10 00 04 00 51 55 40 1F 05 00 18 00 9C DA 0C D1
+2D 01 6B B0 B6 C6 C8 C6
 @C400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C4
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C4 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C4 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C4 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C4 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C4 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C4 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C4 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 20 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C4 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C5 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C4 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C5 02 31 2D 00
-1E 83 30 4D D8 C4 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C5
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C5 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C5 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C4 01 3E 3E 8F F4 3B EB 37 0E C5 02 42 4C 00
-85 12 20 00 AC C5 04 42 41 53 45 00 85 12 DC 21
-C8 C4 05 53 54 41 54 45 85 12 BE 21 96 C5 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 86 C5 06 55 4D 2F
-4D 4F 44 00 30 12 62 C4 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C4 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C5
-01 23 1B 42 DC 21 2C 4F 2F 83 B0 12 F0 C5 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 21 18 42 B2 21 C8 4A 00 00 30 4D 30 C6
-02 23 53 00 87 12 32 C6 6A C6 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C6 02 23 3E 00 9F 42
-B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C5 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C5
-02 44 2E 00 87 12 D2 C5 44 C4 B0 C4 4C C5 64 C6
-BC C4 A2 C6 7E C6 14 C9 DC C8 2A C4 DC C5 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C4
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C6 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 21 30 4D F8 C4
-05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D 7A C6
-02 43 2C 00 1A 42 C6 21 CA 4E 00 00 92 53 C6 21
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C6 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C6 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C5 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C7 03 4B 45 59 30 40 A0 C7
-18 42 0C 05 2F 83 8F 4E 00 00 B0 12 FC C7 92 B3
-1C 05 FD 27 1E 42 0C 05 B0 12 0E C8 30 4D 00 C7
-06 41 43 43 45 50 54 00 3C 40 6A C8 3B 40 34 C8
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C8 92 B3 1C 05 05 24 18 42 0C 05 38 90
-0A 00 04 20 21 53 39 40 22 C8 4D 15 A2 B3 1C 05
-FD 27 B2 40 11 00 0E 05 F2 C2 03 02 30 41 B2 40
-13 00 0E 05 F2 D2 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C8 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 0C 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 1C 05 FD 27 82 48 0E 05 30 4D 60 C8
-2D 83 92 B3 1C 05 E4 23 FC 27 82 93 DE 21 02 24
-92 53 DE 21 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C6 04 45 4D 49 54 00 30 40 8C C8 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 21 00 00 AF 4F 02 00 8F 3F 82 C8 04 45 43 48
-4F 00 B2 40 82 48 58 C8 82 43 DE 21 30 4D E0 C6
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C8 92 43
-DE 21 30 4D 9C C6 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C8 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C8 EF 3F 00 C9
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C7 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C9 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C9 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C7 02 43
-52 00 30 40 46 C9 87 12 52 C9 02 0D 0A 00 14 C9
-2A C4 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C8 82 53 22 00 82 43 B4 21
-87 12 34 C4 52 C9 0A CC 34 C4 22 00 B6 C9 80 C9
-3D 41 B2 40 20 00 B4 21 6E 4E 1E 83 82 5E C6 21
-3E 4F 92 B3 C6 21 A2 63 C6 21 30 4D C0 C8 82 2E
-22 00 87 12 6C C9 34 C4 14 C9 0A CC 2A C4 00 00
-04 57 4F 52 44 00 3C 40 C0 21 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C4
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C4
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C4
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C4 02 3E 52 00 0E 12 3E 4F 30 4D 70 C4 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C4 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C4 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C4
+01 21 BE 4F 00 00 3E 4F 30 4D CC C4 02 30 3D 00
+1E 83 0E 7E 30 4D FC C4 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C5 02 3C 23 00 B2 40 B2 21 B2 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 21 2C 4F 2F 83
+B0 12 46 C5 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 21 18 42 B2 21 C8 4A
+00 00 30 4D 86 C5 02 23 53 00 87 12 88 C5 C0 C5
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C5
+02 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C4 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C5 34 C4 86 C4 D4 C4 BA C5
+92 C4 F8 C5 D4 C5 D6 C7 7E CB 82 C7 2A C4 22 C5
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C5 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C6 18 42 0C 05 2F 83 8F 4E
+00 00 B0 12 B6 C6 92 B3 1C 05 FD 27 1E 42 0C 05
+B0 12 C8 C6 30 4D A2 B3 1C 05 FD 27 B2 40 11 00
+0E 05 F2 C2 03 02 30 41 B2 40 13 00 0E 05 F2 D2
+03 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C6
+B0 12 B6 C6 12 D2 0A 18 F9 3F F0 C4 06 41 43 43
+45 50 54 00 3C 40 64 C7 3B 40 2E C7 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C7
+92 B3 1C 05 05 24 18 42 0C 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 0C 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 82 48 0E 05 30 4D 5A C7 2D 83 92 B3 1C 05
+E4 23 FC 27 82 93 DE 21 02 24 92 53 DE 21 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C4 04 45 4D 49
+54 00 30 40 86 C7 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
+02 00 A8 3F 7C C7 04 45 43 48 4F 00 B2 40 82 48
+52 C7 82 43 DE 21 30 4D 32 C6 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C7 92 43 DE 21 30 4D 20 C6
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C7
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C7 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C5
+02 43 52 00 30 40 08 C8 87 12 1E C8 02 0D 0A 00
+D6 C7 2A C4 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C5 82 53 22 00 82 43 B4 21 87 12 14 C8
+1E C8 EC CA 14 C8 22 00 80 C8 4C C8 B2 40 20 00
+B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3D 41 3E 4F
+30 4D BA C7 82 2E 22 00 87 12 38 C8 14 C8 D6 C7
+EC CA 2A C4 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 21 1A 42 C2 21 09 5A 1A 52 C4 21
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 21 82 4A C4 21 30 4D 18 42 C6 21 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 21
 F0 3F 1A 82 C2 21 82 4A C4 21 1E 42 C6 21 08 8E
@@ -104,305 +86,284 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C4 34 40 00 C4 30 4D 0E C9 03 55
+00 00 35 40 0E C4 34 40 00 C4 30 4D D0 C7 03 55
 4D 2A 2C 4F 0B 43 09 43 08 43 1A 43 0E BA 02 24
 09 5C 08 6B 0C 5C 0B 6B 0A 5A F8 2B 8F 49 00 00
-0E 48 30 4D A2 C5 07 3E 4E 55 4D 42 45 52 2C 4F
+0E 48 30 4D 82 C4 07 3E 4E 55 4D 42 45 52 2C 4F
 0B 4E 1A 42 DC 21 68 4C 78 80 30 00 78 90 0A 00
 05 28 78 80 07 00 78 90 0A 00 1F 28 08 9A 22 C3
-1C 2C 5D 15 1C 4F 02 00 0E 4A 3D 40 D0 CA D2 3F
-D2 CA 81 49 02 00 1C 4F 04 00 1E 41 04 00 3D 40
-E4 CA C8 3F E6 CA 39 51 3E 61 8F 49 04 00 8F 4E
+1C 2C 5D 15 1C 4F 02 00 0E 4A 3D 40 B0 C9 D2 3F
+B2 C9 81 49 02 00 1C 4F 04 00 1E 41 04 00 3D 40
+C4 C9 C8 3F C6 C9 39 51 3E 61 8F 49 04 00 8F 4E
 02 00 3A 17 1C 53 1B 83 D6 23 8F 4C 00 00 0E 4B
-30 4D 1B 42 DC 21 0C 43 2D 15 3D 40 4E CB 0A 4B
-3F 82 8F 4E 06 00 8F 43 04 00 8F 43 02 00 0C 4E
-7B 4C 68 4C 78 90 2D 00 04 28 BE 23 B1 43 02 00
-E1 3F 2A 43 78 80 25 00 07 24 3A 52 68 53 04 24
-3A 40 10 00 58 83 AF 23 1C 53 1B 83 EA 3F 50 CB
-31 24 2D 83 78 90 28 00 CD 27 32 B0 00 02 2A 20
-32 D0 00 02 78 90 F7 00 C5 27 78 90 F5 00 22 20
-09 43 8F 49 02 00 5B 83 09 4B 09 5C 69 49 79 80
-30 00 79 90 0A 00 05 28 79 80 07 00 79 90 0A 00
-0A 28 09 9A 08 2C 8F 49 00 00 0E 4A 2C 15 B0 12
-E8 C5 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-0E 4B 4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0
-00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00
-04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00
-BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02
-01 20 2F 53 30 4D AC C8 07 45 58 45 43 55 54 45
-0A 4E 3E 4F 00 4A 26 C5 01 2C 1A 42 C6 21 A2 53
-C6 21 8A 4E 00 00 3E 4F 30 4D 08 CC 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0C 24 1A 42 C6 21 A2 52
-C6 21 BA 40 34 C4 00 00 8A 4E 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00
-0E 49 EB 3F 30 4D 3E C9 05 43 4F 55 4E 54 2F 83
-1E 53 8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 21
-B2 4F C2 21 3E 4F 82 43 C4 21 30 4D 87 12 6C CC
-B0 C5 B6 C9 86 CC 3D 40 8E CC C1 22 3C 3E 90 CC
-0A 4E 3E 4F 3D 40 A6 CC 34 27 3D 40 80 CC 1A E2
-BE 21 B3 27 AD 23 A8 CC 3E 4F 3D 40 80 CC BA 23
-DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
-72 CF CD 3F F8 CB 08 45 56 41 4C 55 41 54 45 00
-39 40 C0 21 3C 49 3B 49 3A 49 3D 15 B0 12 2A C4
-7C CC E4 CC B2 41 C4 21 B2 41 C2 21 B2 41 C0 21
-3D 41 30 4D 6C C5 04 51 55 49 54 00 82 43 08 18
-31 40 E0 20 B2 40 00 20 00 20 82 43 BE 21 B0 12
-2A C4 42 C9 92 C8 DC C8 7C CC DE C4 70 C5 52 C9
-0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 70 CD
-34 C4 30 FF F2 C6 8A C5 52 C9 0A 46 52 41 4D 20
-66 75 6C 6C 21 00 70 CD 24 C7 12 CD C0 C7 05 41
-42 4F 52 54 3F 40 80 20 D1 3F 4E CD 86 41 42 4F
-52 54 22 00 87 12 6C C9 34 C4 70 CD 0A CC 2A C4
-8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 32 D5
-B0 12 FC C7 92 C3 1C 05 38 40 50 55 39 42 09 59
-03 43 19 83 FD 23 18 83 F9 23 92 B3 1C 05 F2 23
-87 12 AC D4 34 C4 DE 21 F2 C4 B2 C8 52 C9 04 1B
-5B 37 6D 00 14 C9 54 C4 28 C7 CC CD 42 C9 52 C9
-05 6C 69 6E 65 3A 14 C9 40 C5 D2 C6 14 C9 52 C9
-04 1B 5B 30 6D 00 14 C9 54 CD 00 00 83 5B 27 5D
-87 12 F2 CD 34 C4 34 C4 0A CC 0A CC 2A C4 08 CA
-01 27 87 12 B0 C5 B6 C9 0E CA 28 C7 00 CE 2A C4
-B0 CC CE C5 81 5C 92 42 C0 21 C4 21 30 4D DC CD
-81 5B 82 43 BE 21 30 4D 04 CE 01 5D B2 43 BE 21
-30 4D BE 4F 02 00 3E 4F 30 4D 72 C7 82 49 53 00
-87 12 C8 C5 F2 C4 28 C7 44 CE E0 CD 34 C4 22 CE
-0A CC 2A C4 F2 CD 22 CE 2A C4 2C CE 09 49 4D 4D
-45 44 49 41 54 45 1A 42 B6 21 FA D0 80 00 00 00
-30 4D 68 C9 87 52 45 43 55 52 53 45 19 42 C6 21
-99 42 BA 21 00 00 A2 53 C6 21 30 4D F6 CC 88 50
-4F 53 54 50 4F 4E 45 00 87 12 B0 C5 B6 C9 0E CA
-54 C4 28 C7 00 CE 70 C5 28 C7 A8 CE 34 C4 34 C4
-0A CC 0A CC 34 C4 0A CC 0A CC 2A C4 10 CE 81 3B
-82 93 BE 21 A8 27 87 12 34 C4 2A C4 0A CC 46 CF
-12 CE 2A C4 AE CE 07 3A 4E 4F 4E 41 4D 45 2F 83
-8F 4E 00 00 1E 42 C6 21 0A 4E 39 40 00 02 38 40
-02 02 B0 12 32 CF BA 40 87 12 FC FF A2 83 C6 21
-B2 43 BE 21 82 4F BC 21 30 4D C6 CE 01 3A 30 12
-E6 CE 87 12 92 C9 B0 C5 B6 C9 0C CF 3D 41 08 4E
-7A 4E 5A D3 5A 53 0A 58 19 42 DA 21 6E 4E 3E F0
-1E 00 09 5E 3E 4F BA 40 30 40 00 00 BA 40 F8 CE
-02 00 82 48 B6 21 82 49 B8 21 82 4A BA 21 2A 52
+30 4D 32 C0 00 02 1B 42 DC 21 0C 43 2D 15 3D 40
+32 CA 0A 4B 3F 82 8F 4E 06 00 8F 43 04 00 8F 43
+02 00 0C 4E 7B 4C 68 4C 78 90 2D 00 04 28 BC 23
+B1 43 02 00 DF 3F 2A 43 78 80 25 00 07 24 3A 52
+68 53 04 24 3A 40 10 00 58 83 AD 23 1C 53 1B 83
+EA 3F 34 CA 2E 24 2D 83 78 90 28 00 CB 27 32 D0
+00 02 78 90 F7 00 C6 27 78 90 F5 00 22 20 09 43
+8F 49 02 00 5B 83 09 4B 09 5C 69 49 79 80 30 00
+79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
+09 9A 08 2C 8F 49 00 00 0E 4A 2C 15 B0 12 3E C5
+2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4B
+4E 93 2B 17 0E 4C 82 4B DC 21 06 24 32 C0 00 02
+3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
+BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
+00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
+2F 53 30 4D 7E C6 04 48 45 52 45 00 2F 83 8F 4E
+00 00 1E 42 C6 21 30 4D B6 C4 01 2C 1A 42 C6 21
+8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D EC C6 05 41
+4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D A6 C7 07 45
+58 45 43 55 54 45 0A 4E 3E 4F 00 4A EA CA 87 4C
+49 54 45 52 41 4C 82 93 BE 21 0C 24 1A 42 C6 21
+A2 52 C6 21 BA 40 14 C8 00 00 8A 4E 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 06 24 19 4A 02 00 8A 4E
+02 00 0E 49 EB 3F 30 4D 00 C8 05 43 4F 55 4E 54
+2F 83 1E 53 8F 4E 00 00 5E 4E FF FF 30 4D 82 4E
+C0 21 B2 4F C2 21 3E 4F 82 43 C4 21 30 4D 85 12
+20 00 87 12 6E CB 7E CB 80 C8 8C CB 3D 40 94 CB
+AE 22 64 3E 96 CB 0A 4E 3E 4F 3D 40 AC CB 21 27
+3D 40 86 CB 1A E2 BE 21 A1 27 B5 23 AE CB 3E 4F
+3D 40 86 CB B8 23 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 62 CE CB 3F 0E CB 08 45 56 41
+4C 55 41 54 45 00 39 40 C0 21 3C 49 3B 49 3A 49
+3D 15 B0 12 2A C4 82 CB EA CB B2 41 C4 21 B2 41
+C2 21 B2 41 C0 21 3D 41 30 4D 85 12 BE 21 08 C5
+04 51 55 49 54 00 82 43 08 18 31 40 E0 20 B2 40
+00 20 00 20 82 43 BE 21 B0 12 2A C4 04 C8 8C C7
+7E CB 82 C7 82 CB A4 C4 0C C5 1E C8 0C 73 74 61
+63 6B 20 65 6D 70 74 79 21 00 7C CC 14 C8 30 FF
+DC CA 26 C5 1E C8 0A 46 52 41 4D 20 66 75 6C 6C
+21 00 7C CC 3C C6 1C CC FE CA 05 41 42 4F 52 54
+3F 40 80 20 D0 3F 5A CC 86 41 42 4F 52 54 22 00
+87 12 38 C8 14 C8 7C CC EC CA 2A C4 8F 93 02 00
+03 20 2F 52 3E 4F 30 4D B0 12 04 D2 B0 12 B6 C6
+92 C3 1C 05 38 40 50 55 39 42 03 43 19 83 FD 23
+18 83 FA 23 92 B3 1C 05 F3 23 87 12 7E D1 14 C8
+DE 21 EA C4 AC C7 1E C8 04 1B 5B 37 6D 00 D6 C7
+58 C4 40 C6 D6 CC 04 C8 1E C8 05 6C 69 6E 65 3A
+D6 C7 D0 C4 24 C6 D6 C7 1E C8 04 1B 5B 30 6D 00
+D6 C7 60 CC 00 00 83 5B 27 5D 87 12 FC CC 14 C8
+14 C8 EC CA EC CA 2A C4 E8 C8 01 27 87 12 7E CB
+80 C8 EE C8 40 C6 0A CD 2A C4 B6 CB 32 C5 81 5C
+92 42 C0 21 C4 21 30 4D E6 CC 81 5B 82 43 BE 21
+30 4D 0E CD 01 5D B2 43 BE 21 30 4D BE 4F 02 00
+3E 4F 30 4D D6 CA 82 49 53 00 87 12 FA CB EA C4
+40 C6 4E CD EA CC 14 C8 2C CD EC CA 2A C4 FC CC
+2C CD 2A C4 36 CD 09 49 4D 4D 45 44 49 41 54 45
+1A 42 B6 21 FA D0 80 00 00 00 30 4D 00 CC 88 50
+4F 53 54 50 4F 4E 45 00 87 12 7E CB 80 C8 EE C8
+58 C4 40 C6 0A CD 0C C5 40 C6 98 CD 14 C8 14 C8
+EC CA EC CA 14 C8 EC CA EC CA 2A C4 1A CD 81 3B
+82 93 BE 21 B5 27 87 12 14 C8 2A C4 EC CA 36 CE
+1C CD 2A C4 9E CD 07 3A 4E 4F 4E 41 4D 45 30 12
+DC CD 2F 83 8F 4E 00 00 1E 42 C6 21 1E B3 0E 63
+0A 4E 39 40 00 02 38 40 02 02 21 3C BA 40 87 12
+FC FF A2 83 C6 21 B2 43 BE 21 30 4D B6 CD 01 3A
+30 12 DC CD 92 B3 C6 21 A2 63 C6 21 87 12 7E CB
+80 C8 04 CE 3D 41 08 4E 7A 4E 5A D3 5A 53 0A 58
+19 42 DA 21 6E 4E 3E F0 1E 00 09 5E 3E 4F 82 48
+B6 21 82 49 B8 21 82 4A BA 21 82 4F BC 21 2A 52
 82 4A C6 21 30 41 82 9F BC 21 09 20 18 42 B6 21
 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 87 12
-52 C9 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
-68 21 7C CD B0 C9 08 56 41 52 49 41 42 4C 45 00
-B0 12 02 CF BA 40 86 12 FC FF E4 3F 58 CC 08 43
-4F 4E 53 54 41 4E 54 00 B0 12 02 CF BA 40 85 12
-FC FF 8A 4E FE FF 3E 4F D5 3F 8E CF 06 43 52 45
-41 54 45 00 B0 12 02 CF BA 40 85 12 FC FF 8A 4A
-FE FF C8 3F C6 CC 05 44 4F 45 53 3E 1A 42 BA 21
-BA 40 84 12 00 00 8A 4D 02 00 3D 41 30 4D C6 CF
-05 44 45 46 45 52 30 12 54 CF 8B 3F 96 CA 05 3E
-42 4F 44 59 2E 52 30 4D AC CF 04 43 4F 44 45 00
-B0 12 02 CF 2A 82 82 4A C6 21 87 12 F4 CE D6 D2
-A8 D2 2A C4 FA CF 07 43 4F 44 45 4E 4E 4D 87 12
-CE CE 12 CE 04 D0 2A C4 00 00 07 45 4E 44 43 4F
-44 45 87 12 F0 D2 46 CF 2A C4 5C CD 03 41 53 4D
-92 42 DA 21 EC 21 B2 40 AC D2 DA 21 D9 3F 2A D0
-06 45 4E 44 41 53 4D 00 92 42 EC 21 DA 21 E9 3F
-00 00 05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 87 12
-00 00 A2 53 C6 21 B2 43 BE 21 30 40 F0 D2 00 00
-05 4C 4F 32 48 49 1A 42 C6 21 BA 40 B0 12 00 00
-BA 40 2A C4 02 00 A2 52 C6 21 ED 3F 4C CE 85 48
-49 32 4C 4F 87 12 F2 C6 CE D0 0A CC 12 CE D6 D2
-A8 D2 2A C4 9E D0 82 49 46 00 2F 83 8F 4E 00 00
-1E 42 C6 21 A2 52 C6 21 BE 40 28 C7 00 00 2E 53
-30 4D E0 CF 84 45 4C 53 45 00 A2 52 C6 21 1A 42
-C6 21 BA 40 24 C7 FC FF 8E 4A 00 00 2A 83 0E 4A
-30 4D 6E CA 84 54 48 45 4E 00 9E 42 C6 21 00 00
-3E 4F 30 4D 16 D0 85 42 45 47 49 4E 30 40 F2 C6
-F4 D0 85 55 4E 54 49 4C 39 40 28 C7 A2 52 C6 21
-1A 42 C6 21 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D
-3C D0 85 41 47 41 49 4E 39 40 24 C7 EF 3F 76 CF
-85 57 48 49 4C 45 87 12 BA D0 78 C4 2A C4 64 CE
-86 52 45 50 45 41 54 00 87 12 38 D1 FA D0 2A C4
-D4 D0 82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 21
-1E 42 C6 21 BE 40 3C C7 FE FF A2 53 00 20 1A 42
-00 20 8A 43 00 00 30 4D 1C CC 84 4C 4F 4F 50 00
-39 40 5E C7 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF
-8A 4E FE FF 1E 42 00 20 A2 83 00 20 2E 4E 0E 93
-03 24 8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C7 85 2B
-4C 4F 4F 50 39 40 4C C7 E5 3F 8A D1 85 4C 45 41
-56 45 1A 42 C6 21 BA 40 6E C7 00 00 BA 40 24 C7
-02 00 B2 50 06 00 C6 21 A2 53 00 20 2A 52 19 42
-00 20 89 4A 00 00 30 4D CC D1 04 4D 4F 56 45 00
-0A 4E 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24
-06 2C F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A
-09 5A 19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D
-40 D1 0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12
-B4 CF 34 C4 10 00 34 C4 00 00 3C C7 34 C4 00 00
-0A CC 5E C7 4C D2 F2 C6 34 C4 C8 21 44 C4 F2 C4
-0A CC FA C4 CC CF 34 C4 CA 21 FA C4 2A C4 F0 CD
-05 46 4F 52 54 48 84 12 66 D2 D0 D2 04 D6 0E D3
-70 D2 B6 D0 BE D1 3A D4 00 D3 D0 D4 EA D4 12 D1
-76 D5 00 00 0E D4 1A CE EE CF 00 00 32 D1 09 41
-53 53 45 4D 42 4C 45 52 84 12 66 D2 F2 DB 5A DC
-A6 DB C4 DC 6C DB E8 DC 98 D8 00 00 62 DB 12 DC
-C4 DB 02 DC A8 D9 00 00 00 00 F6 DC 9A D2 9E D2
-04 41 4C 53 4F 00 3A 40 0C 00 39 40 CA 21 38 40
-CC 21 9D 3F 7E CE 08 50 52 45 56 49 4F 55 53 00
-3A 40 0E 00 39 40 CC 21 38 40 CA 21 8A 3F 9E C9
-04 4F 4E 4C 59 00 82 43 CC 21 30 4D 62 D1 0B 44
-45 46 49 4E 49 54 49 4F 4E 53 92 42 CA 21 DA 21
-30 4D 06 D1 07 43 4F 4D 50 41 52 45 0C 4E 38 4F
-3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83
-07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D
-1E 43 30 4D FC CE 86 5B 54 48 45 4E 5D 00 30 4D
-56 D3 86 5B 45 4C 53 45 5D 00 87 12 34 C4 00 00
-36 C5 B0 C5 B6 C9 5E CC 44 C4 28 C7 D0 D3 8A C4
-8A C4 52 C9 06 5B 54 48 45 4E 5D 00 2C D3 32 C7
-9E D3 36 C9 40 C5 54 C4 32 C7 72 D3 2A C4 8A C4
-8A C4 52 C9 06 5B 45 4C 53 45 5D 00 2C D3 32 C7
-BE D3 36 C9 40 C5 54 C4 32 C7 70 D3 2A C4 52 C9
-04 5B 49 46 5D 00 2C D3 32 C7 72 D3 24 C7 70 D3
-36 C9 52 C9 05 0D 0A 6B 6F 20 14 C9 92 C8 6C CC
-24 C7 72 D3 62 D3 84 5B 49 46 5D 00 0E 93 3E 4F
-BC 27 30 4D E6 D3 89 5B 44 45 46 49 4E 45 44 5D
-87 12 B0 C5 B6 C9 0E CA 6C C4 2A C4 F6 D3 8B 5B
-55 4E 44 45 46 49 4E 45 44 5D 87 12 B0 C5 B6 C9
-0E CA 6C C4 64 C5 2A C4 2A D4 3D 41 B2 4E 0E 18
-A2 4E 0C 18 3E 4F 44 3C FA D1 06 4D 41 52 4B 45
-52 00 B0 12 02 CF BA 40 84 12 FC FF BA 40 28 D4
-FE FF 9A 42 C8 21 00 00 28 83 8A 48 02 00 A2 52
-C6 21 30 40 4C CF 76 D2 06 D3 1A D3 6E D4 3A 4E
-82 4A C8 21 2E 4E 82 4E C6 21 3D 40 10 00 09 4A
-08 49 29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00
-1D 83 F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D
-E6 D2 09 50 57 52 5F 53 54 41 54 45 84 12 66 D4
-CC D2 08 DD 50 D1 09 52 53 54 5F 53 54 41 54 45
-92 42 0E 18 B0 D4 92 42 0C 18 B2 D4 EF 3F A2 D4
-08 50 57 52 5F 48 45 52 45 00 92 42 C8 21 B0 D4
-92 42 C6 21 B2 D4 30 4D B6 D4 08 52 53 54 5F 48
-45 52 45 00 92 42 C8 21 0E 18 92 42 C6 21 0C 18
-EC 3F 32 D2 04 57 49 50 45 00 39 40 10 00 29 83
-B9 43 80 FF FC 23 B2 40 26 C8 24 C8 B2 40 80 D5
-7E D5 B2 40 CC D2 0E 18 B2 40 08 DD 0C 18 30 12
-C0 D4 B2 40 8C C8 8A C8 B2 40 46 C9 44 C9 B2 40
-A0 C7 9E C7 B2 40 18 00 0A 18 37 40 1A C4 36 40
-BC C4 35 40 0E C4 34 40 00 C4 39 40 10 00 29 83
-89 43 E0 21 FC 23 B2 40 0A 00 DC 21 B2 40 20 00
-B4 21 30 41 04 D5 04 57 41 52 4D 00 30 40 80 D5
-3D 40 B4 D5 92 C3 30 01 1E 42 08 18 0E 93 11 24
-D2 B3 00 02 02 20 3E E3 1E 53 F2 D0 03 00 0A 02
-3E 90 0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27
-87 2F 30 4D 52 C9 06 0D 1B 5B 37 6D 23 00 14 C9
-E2 C6 52 C9 1F 46 61 73 74 46 6F 72 74 68 20 56
-33 30 30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72
-65 6E 73 20 14 C9 34 C4 80 FF F2 C6 28 C5 D2 C6
-52 C9 0B 62 79 74 65 73 20 66 72 65 65 20 24 C7
-CC CD 24 D3 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
-B2 40 04 A5 20 01 B2 40 88 5A CC 01 B2 D0 00 08
-04 02 B2 D3 06 02 B2 43 02 02 B2 40 00 01 24 02
-B2 40 FF FE 22 02 B2 D0 FF FE 26 02 B2 43 42 02
-B2 D3 46 02 B2 43 62 02 B2 D3 66 02 B2 40 00 A5
-60 01 B2 40 FF 1E 80 01 B2 40 B6 00 82 01 B2 40
-F4 00 84 01 39 40 80 00 82 43 88 01 92 D2 5E 01
-08 18 38 40 59 14 18 83 FE 23 19 83 FA 23 39 40
-00 08 29 83 89 43 00 20 FC 23 39 40 1E 00 29 83
-B9 40 16 D6 E2 FF FB 23 B2 40 2C C8 EC FF B2 40
-81 00 00 05 92 42 02 18 06 05 92 42 04 18 08 05
-92 C3 00 05 92 D3 1A 05 3F 40 80 20 31 40 E0 20
-30 12 7C D5 3F 3F 38 40 C0 21 39 48 2A 48 09 5A
-1A 52 C4 21 09 9A 03 24 7E 9A FC 27 1A 83 0E 4A
-2A 88 82 4A C4 21 30 4D 1C 15 B0 12 2A C4 B6 C9
-0E CA 32 C7 FE D6 02 CB 28 C7 00 CE 20 D7 00 D7
-29 4E 39 90 86 12 02 20 2E 53 0A 3C 39 90 85 12
-03 20 1E 4E 02 00 04 3C 39 90 84 12 01 20 2E 52
-1B 17 30 41 3E 40 28 00 B0 12 E8 D6 19 42 C6 21
-A2 53 C6 21 89 4E 00 00 3E 40 29 00 1C 15 12 12
-C4 21 92 53 C4 21 B0 12 2A C4 B6 C9 02 CB 28 C7
-5E D7 54 D7 21 53 3E 90 10 00 83 2D E1 2B 60 D7
-B2 41 C4 21 DD 3F 87 12 B0 C5 C6 D6 6E D7 0C 43
-1B 42 C6 21 A2 53 C6 21 6A 4E 3E 4F 7A 90 23 00
-2D 20 92 53 C4 21 B0 12 E8 D6 0E 93 03 20 3C 40
-00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C 2E 93
-03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40 20 02
-12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93 03 20
-3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 21 A2 53
-C6 21 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00
-07 20 3C 40 10 02 92 53 C4 21 B0 12 E8 D6 ED 3F
-7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12
-3C D7 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 3C D7
-92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E
-DA 3F B0 12 3C D7 FA 23 3C 50 10 00 B0 12 24 D7
-EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 87 12 B0 C5
-C6 D6 44 D8 FE 90 26 00 00 00 3E 40 20 00 03 20
-3C 50 82 00 C8 3F B0 12 3C D7 E1 23 3C 50 80 00
-B0 12 24 D7 DC 3F 1C C8 04 52 45 54 49 00 87 12
-34 C4 00 13 0A CC 2A C4 34 C4 2C 00 66 D7 3C D8
-82 D8 2E 4E 0E DC 09 4B A4 3F 80 D0 03 4D 4F 56
-84 12 78 D8 00 40 8C D8 05 4D 4F 56 2E 42 84 12
-78 D8 40 40 00 00 03 41 44 44 84 12 78 D8 00 50
-A6 D8 05 41 44 44 2E 42 84 12 78 D8 40 50 B2 D8
-04 41 44 44 43 00 84 12 78 D8 00 60 C0 D8 06 41
-44 44 43 2E 42 00 84 12 78 D8 40 60 68 D8 04 53
-55 42 43 00 84 12 78 D8 00 70 DE D8 06 53 55 42
-43 2E 42 00 84 12 78 D8 40 70 EC D8 03 53 55 42
-84 12 78 D8 00 80 FC D8 05 53 55 42 2E 42 84 12
-78 D8 40 80 62 D0 03 43 4D 50 84 12 78 D8 00 90
-16 D9 05 43 4D 50 2E 42 84 12 78 D8 40 90 50 D0
-04 44 41 44 44 00 84 12 78 D8 00 A0 30 D9 06 44
-41 44 44 2E 42 00 84 12 78 D8 40 A0 22 D9 03 42
-49 54 84 12 78 D8 00 B0 4E D9 05 42 49 54 2E 42
-84 12 78 D8 40 B0 5A D9 03 42 49 43 84 12 78 D8
-00 C0 68 D9 05 42 49 43 2E 42 84 12 78 D8 40 C0
-74 D9 03 42 49 53 84 12 78 D8 00 D0 82 D9 05 42
-49 53 2E 42 84 12 78 D8 40 D0 00 00 03 58 4F 52
-84 12 78 D8 00 E0 9C D9 05 58 4F 52 2E 42 84 12
-78 D8 40 E0 CE D8 03 41 4E 44 84 12 78 D8 00 F0
-B6 D9 05 41 4E 44 2E 42 84 12 78 D8 40 F0 B0 C5
-66 D7 D4 D9 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F 08 D9 03 52 52 43 84 12 CE D9 00 10
-E6 D9 05 52 52 43 2E 42 84 12 CE D9 40 10 F2 D9
-04 53 57 50 42 00 84 12 CE D9 80 10 00 DA 03 52
-52 41 84 12 CE D9 00 11 0E DA 05 52 52 41 2E 42
-84 12 CE D9 40 11 1A DA 03 53 58 54 84 12 CE D9
-80 11 00 00 04 50 55 53 48 00 84 12 CE D9 00 12
-34 DA 06 50 55 53 48 2E 42 00 84 12 CE D9 40 12
-8E D9 04 43 41 4C 4C 00 84 12 CE D9 80 12 1A 53
-0E 4A 87 12 E2 C6 52 C9 0D 6F 75 74 20 6F 66 20
-62 6F 75 6E 64 73 7C CD B0 C5 C6 D6 7E DA 92 53
-C4 21 3E 40 2C 00 B0 12 2A C4 B6 C9 02 CB 28 C7
-00 CE 32 D8 96 DA 0A 4E 3E 4F 1A 83 E0 33 29 4E
-59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
-10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06
-8F 3F 28 DA 04 52 52 43 4D 00 84 12 78 DA 50 00
-C4 DA 04 52 52 41 4D 00 84 12 78 DA 50 01 D2 DA
-04 52 4C 41 4D 00 84 12 78 DA 50 02 E0 DA 04 52
-52 55 4D 00 84 12 78 DA 50 03 42 DA 05 50 55 53
-48 4D 84 12 78 DA 00 15 FC DA 04 50 4F 50 4D 00
-84 12 78 DA 00 17 85 12 00 3C EE DA 03 53 3E 3D
-85 12 00 38 1C DB 02 53 3C 00 85 12 00 34 0A DB
-03 30 3E 3D 85 12 00 30 30 DB 02 30 3C 00 85 12
-00 30 00 00 02 55 3C 00 85 12 00 2C 44 DB 03 55
-3E 3D 85 12 00 28 3A DB 03 30 3C 3E 85 12 00 24
-58 DB 02 30 3D 00 85 12 00 20 00 00 02 49 46 00
-1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 0E 4A 30 4D
-4E DB 04 54 48 45 4E 00 1A 42 C6 21 08 4E 3E 4F
-09 48 29 53 0A 89 0A 11 3A 90 00 02 61 2F 88 DA
-00 00 30 4D 3E D9 04 45 4C 53 45 00 1A 42 C6 21
-BA 40 00 3C 00 00 A2 53 C6 21 2F 83 8F 4A 00 00
-E3 3F 82 DB 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
-19 42 C6 21 2A 83 0A 89 0A 11 3A 90 00 FE 40 3B
-3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D
-C2 D9 05 41 47 41 49 4E 87 12 16 DB CA DB 2A C4
-00 00 05 57 48 49 4C 45 87 12 70 DB 78 C4 2A C4
-26 DB 06 52 45 50 45 41 54 00 87 12 16 DB CA DB
-88 DB 2A C4 26 DC 3D 41 2E 4E 08 4E 3E 4F 2A 48
-0A 93 88 43 00 00 CA 23 98 42 C6 21 00 00 30 4D
-52 DA 03 42 57 31 84 12 24 DC E0 21 42 DC 03 42
-57 32 84 12 24 DC E2 21 4E DC 03 42 57 33 84 12
-24 DC E4 21 66 DC 3D 41 1A 42 C6 21 2E 4E 28 4E
-08 93 8E 43 00 00 8B 23 BA 4F 00 00 A2 53 C6 21
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12
-64 DC E6 21 8A DC 03 46 57 32 84 12 64 DC E8 21
-96 DC 03 46 57 33 84 12 64 DC EA 21 3E 90 00 30
+1E C8 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 88 CC CC CB 05 44 45 46 45 52 B0 12 F4 CD
+BA 40 30 40 FC FF BA 40 EA CD FE FF E3 3F 5A CB
+06 43 52 45 41 54 45 00 B0 12 F4 CD BA 40 85 12
+FC FF 8A 4A FE FF D6 3F 66 CE 05 44 4F 45 53 3E
+1A 42 BA 21 BA 40 84 12 00 00 8A 4D 02 00 3D 41
+30 4D 76 C9 05 3E 42 4F 44 59 2E 52 30 4D 80 CE
+04 43 4F 44 45 00 B0 12 F4 CD A2 82 C6 21 87 12
+0E D1 E8 D0 2A C4 C0 CE 07 43 4F 44 45 4E 4E 4D
+B0 12 C2 CD F2 3F 00 00 07 45 4E 44 43 4F 44 45
+87 12 1C D1 36 CE 2A C4 68 CC 03 41 53 4D B2 40
+EC D0 DA 21 E0 3F E8 CE 06 45 4E 44 41 53 4D 00
+87 12 F0 CE 30 D1 2A C4 00 00 05 43 4F 4C 4F 4E
+1A 42 C6 21 BA 40 87 12 00 00 A2 53 C6 21 B2 43
+BE 21 30 40 1C D1 00 00 05 4C 4F 32 48 49 1A 42
+C6 21 BA 40 B0 12 00 00 BA 40 2A C4 02 00 A2 52
+C6 21 ED 3F 56 CD 85 48 49 32 4C 4F 87 12 DC CA
+86 CF EC CA 1C CD 0E D1 E8 D0 2A C4 56 CF 82 49
+46 00 2F 83 8F 4E 00 00 1E 42 C6 21 A2 52 C6 21
+BE 40 40 C6 00 00 2E 53 30 4D 9A CE 84 45 4C 53
+45 00 A2 52 C6 21 1A 42 C6 21 BA 40 3C C6 FC FF
+8E 4A 00 00 2A 83 0E 4A 30 4D 4E C9 84 54 48 45
+4E 00 9E 42 C6 21 00 00 3E 4F 30 4D D8 CE 85 42
+45 47 49 4E 30 40 DC CA AC CF 85 55 4E 54 49 4C
+39 40 40 C6 A2 52 C6 21 1A 42 C6 21 8A 49 FC FF
+8A 4E FE FF 3E 4F 30 4D FA CE 85 41 47 41 49 4E
+39 40 3C C6 EF 3F 7A C8 85 57 48 49 4C 45 87 12
+72 CF 76 C4 2A C4 34 C8 86 52 45 50 45 41 54 00
+87 12 F0 CF B2 CF 2A C4 8C CF 82 44 4F 00 2F 83
+8F 4E 00 00 A2 53 C6 21 1E 42 C6 21 BE 40 54 C6
+FE FF A2 53 00 20 1A 42 00 20 8A 43 00 00 30 4D
+1E CB 84 4C 4F 4F 50 00 39 40 76 C6 A2 52 C6 21
+1A 42 C6 21 8A 49 FC FF 8A 4E FE FF 1E 42 00 20
+A2 83 00 20 2E 4E 0E 93 03 24 8E 4A 00 00 F6 3F
+3E 4F 30 4D 90 C6 85 2B 4C 4F 4F 50 39 40 64 C6
+E5 3F 42 D0 04 4D 4F 56 45 00 0A 4E 38 4F 39 4F
+3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49 00 00
+18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83 18 83
+E8 49 00 00 1A 83 FA 23 30 4D 14 C8 CA 21 F2 C4
+2A C4 84 12 BA D0 EA CF 82 D3 1A D0 FA CC 6E CF
+76 D0 96 D4 64 C8 A2 D1 BC D1 CA CF 3C D2 00 00
+68 D4 24 CD B4 CE 00 00 84 12 BA D0 B4 D9 16 DA
+68 D9 8A DA 2E D9 00 00 5E D6 00 00 24 D9 D4 D9
+86 D9 C4 D9 6E D7 00 00 00 00 66 DA E6 D0 3A 40
+0C 00 39 40 CA 21 38 40 CC 21 C6 3F 3A 40 0E 00
+39 40 CC 21 38 40 CA 21 B9 3F 82 43 CC 21 30 4D
+92 42 CA 21 DA 21 30 4D C2 D0 2A D1 30 D1 40 D1
+3A 4E 82 4A C8 21 2E 4E 82 4E C6 21 3D 40 10 00
+09 4A 08 49 29 83 18 48 FE FF 0E 98 FC 2B 89 48
+00 00 1D 83 F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41
+30 4D 6E CD 09 50 57 52 5F 53 54 41 54 45 84 12
+38 D1 0C D1 9C DA 08 D0 09 52 53 54 5F 53 54 41
+54 45 92 42 0E 18 82 D1 92 42 0C 18 84 D1 EF 3F
+74 D1 08 50 57 52 5F 48 45 52 45 00 92 42 C8 21
+82 D1 92 42 C6 21 84 D1 30 4D 88 D1 08 52 53 54
+5F 48 45 52 45 00 92 42 C8 21 0E 18 92 42 C6 21
+0C 18 EC 3F F8 CF 04 57 49 50 45 00 39 40 10 00
+29 83 B9 43 80 FF FC 23 B2 40 E0 C6 DE C6 B2 40
+46 D2 44 D2 B2 40 0C D1 0E 18 B2 40 9C DA 0C 18
+30 12 92 D1 B2 40 86 C7 84 C7 B2 40 08 C8 06 C8
+B2 40 98 C6 96 C6 B2 40 18 00 0A 18 37 40 1A C4
+36 40 92 C4 35 40 0E C4 34 40 00 C4 B2 40 0A 00
+DC 21 B2 40 20 00 B4 21 30 41 D6 D1 04 57 41 52
+4D 00 30 40 46 D2 3D 40 7A D2 92 C3 30 01 1E 42
+08 18 0E 93 11 24 D2 B3 00 02 02 20 3E E3 1E 53
+F2 D0 03 00 0A 02 3E 90 0A 00 B8 27 3E 90 16 00
+B5 2F 2E 93 84 27 8D 2F 30 4D 1E C8 06 0D 1B 5B
+37 6D 23 00 D6 C7 34 C6 1E C8 19 46 61 73 74 46
+6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54 68 6F 6F 72
+65 6E 73 20 D6 C7 14 C8 30 FF DC CA B8 C4 24 C6
+1E C8 0A 62 79 74 65 73 20 66 72 65 65 00 3C C6
+D6 CC BE CF 04 43 4F 4C 44 00 92 B3 0A 05 FD 23
+B2 40 04 A5 20 01 7A D2 B2 40 88 5A CC 01 B2 D0
+00 08 04 02 B2 D3 06 02 B2 43 02 02 B2 D0 FF FE
+26 02 B2 43 22 02 B2 43 42 02 B2 D3 46 02 B2 43
+62 02 B2 D3 66 02 B2 40 00 A5 60 01 B2 40 FF 1E
+80 01 B2 40 B6 00 82 01 B2 40 F4 00 84 01 39 40
+80 00 82 43 88 01 92 D2 5E 01 08 18 38 40 59 14
+18 83 FE 23 19 83 FA 23 39 40 00 08 29 83 89 43
+00 20 FC 23 39 40 1E 00 29 83 B9 40 D8 D2 E2 FF
+FB 23 B2 40 26 C7 EC FF B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 92 C3 00 05 92 D3
+1A 05 3F 40 80 20 31 40 E0 20 30 12 42 D2 4B 3F
+C4 D2 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
+39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
+19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
+30 4D EE CD 86 5B 54 48 45 4E 5D 00 30 4D B4 D3
+86 5B 45 4C 53 45 5D 00 87 12 14 C8 00 00 C6 C4
+7E CB 80 C8 60 CB 34 C4 40 C6 2A D4 44 C4 1E C8
+06 5B 54 48 45 4E 5D 00 8A D3 4A C6 FA D3 F8 C7
+D0 C4 58 C4 4A C6 D0 D3 2A C4 44 C4 1E C8 06 5B
+45 4C 53 45 5D 00 8A D3 4A C6 18 D4 F8 C7 D0 C4
+58 C4 4A C6 CE D3 2A C4 1E C8 04 5B 49 46 5D 00
+8A D3 4A C6 D0 D3 3C C6 CE D3 F8 C7 1E C8 05 0D
+0A 6B 6F 20 D6 C7 8C C7 6E CB 3C C6 D0 D3 C0 D3
+84 5B 49 46 5D 00 0E 93 3E 4F BE 27 30 4D 40 D4
+89 5B 44 45 46 49 4E 45 44 5D 87 12 7E CB 80 C8
+EE C8 6A C4 2A C4 50 D4 8B 5B 55 4E 44 45 46 49
+4E 45 44 5D 87 12 7E CB 80 C8 EE C8 6A C4 00 C5
+2A C4 84 D4 3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F
+30 40 92 D1 84 D0 06 4D 41 52 4B 45 52 00 B0 12
+F4 CD BA 40 84 12 FC FF BA 40 82 D4 FE FF 9A 42
+C8 21 00 00 28 83 8A 48 02 00 A2 52 C6 21 30 40
+3C CE 1C 15 B0 12 2A C4 80 C8 EE C8 4A C6 D8 D4
+E2 C9 40 C6 0A CD F2 D4 DA D4 39 4E 39 80 86 12
+08 24 19 53 02 20 2E 4E 04 3C 2E 53 19 53 01 24
+2E 82 1B 17 30 41 3E 40 28 00 B0 12 C2 D4 19 42
+C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00 1C 15
+12 12 C4 21 92 53 C4 21 B0 12 2A C4 80 C8 E2 C9
+40 C6 30 D5 26 D5 21 53 3E 90 10 00 7D 2D E1 2B
+32 D5 B2 41 C4 21 DD 3F 87 12 7E CB 74 C8 40 D5
+0C 43 1B 42 C6 21 A2 53 C6 21 6A 4E 3E 4F 7A 90
+23 00 27 20 92 53 C4 21 B0 12 C2 D4 3C 40 00 03
+0E 93 1C 24 3C 40 10 03 1E 93 18 24 3C 40 20 03
+2E 93 14 24 3C 40 20 02 2E 92 10 24 3C 40 30 02
+3E 92 0C 24 3C 40 30 03 3E 93 08 24 3C 40 30 00
+19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 4F 3D 41
+30 4D 7A 90 26 00 07 20 3C 40 10 02 92 53 C4 21
+B0 12 C2 D4 ED 3F 7A 90 40 00 16 20 3C 40 20 00
+92 53 C4 21 B0 12 0E D5 0C 20 3C 50 10 00 3E 40
+2B 00 B0 12 0E D5 92 92 C0 21 C4 21 02 24 92 53
+C4 21 8E 10 0C 5E DA 3F B0 12 0E D5 FA 23 3C 50
+10 00 B0 12 F6 D4 EF 3F 0C 43 1B 42 C6 21 A2 53
+C6 21 87 12 7E CB 74 C8 0A D6 FE 90 26 00 00 00
+3E 40 20 00 03 20 3C 50 82 00 C8 3F B0 12 0E D5
+E1 23 3C 50 80 00 B0 12 F6 D4 DC 3F D6 C6 04 52
+45 54 49 00 87 12 14 C8 00 13 EC CA 2A C4 14 C8
+2C 00 38 D5 02 D6 48 D6 09 4B 2E 4E 0E DC A4 3F
+38 CF 03 4D 4F 56 84 12 3E D6 00 40 52 D6 05 4D
+4F 56 2E 42 84 12 3E D6 40 40 00 00 03 41 44 44
+84 12 3E D6 00 50 6C D6 05 41 44 44 2E 42 84 12
+3E D6 40 50 78 D6 04 41 44 44 43 00 84 12 3E D6
+00 60 86 D6 06 41 44 44 43 2E 42 00 84 12 3E D6
+40 60 2E D6 04 53 55 42 43 00 84 12 3E D6 00 70
+A4 D6 06 53 55 42 43 2E 42 00 84 12 3E D6 40 70
+B2 D6 03 53 55 42 84 12 3E D6 00 80 C2 D6 05 53
+55 42 2E 42 84 12 3E D6 40 80 1A CF 03 43 4D 50
+84 12 3E D6 00 90 DC D6 05 43 4D 50 2E 42 84 12
+3E D6 40 90 08 CF 04 44 41 44 44 00 84 12 3E D6
+00 A0 F6 D6 06 44 41 44 44 2E 42 00 84 12 3E D6
+40 A0 E8 D6 03 42 49 54 84 12 3E D6 00 B0 14 D7
+05 42 49 54 2E 42 84 12 3E D6 40 B0 20 D7 03 42
+49 43 84 12 3E D6 00 C0 2E D7 05 42 49 43 2E 42
+84 12 3E D6 40 C0 3A D7 03 42 49 53 84 12 3E D6
+00 D0 48 D7 05 42 49 53 2E 42 84 12 3E D6 40 D0
+00 00 03 58 4F 52 84 12 3E D6 00 E0 62 D7 05 58
+4F 52 2E 42 84 12 3E D6 40 E0 94 D6 03 41 4E 44
+84 12 3E D6 00 F0 7C D7 05 41 4E 44 2E 42 84 12
+3E D6 40 F0 7E CB 38 D5 9A D7 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4F 3F CE D6 03 52 52 43
+84 12 94 D7 00 10 AC D7 05 52 52 43 2E 42 84 12
+94 D7 40 10 B8 D7 04 53 57 50 42 00 84 12 94 D7
+80 10 C6 D7 03 52 52 41 84 12 94 D7 00 11 D4 D7
+05 52 52 41 2E 42 84 12 94 D7 40 11 E0 D7 03 53
+58 54 84 12 94 D7 80 11 00 00 04 50 55 53 48 00
+84 12 94 D7 00 12 FA D7 06 50 55 53 48 2E 42 00
+84 12 94 D7 40 12 54 D7 04 43 41 4C 4C 00 84 12
+94 D7 80 12 1A 53 0E 4A 87 12 34 C6 1E C8 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 88 CC 7E CB
+74 C8 44 D8 92 53 C4 21 3E 40 2C 00 B0 12 2A C4
+80 C8 E2 C9 40 C6 0A CD F8 D5 5C D8 0A 4E 3E 4F
+1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
+0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92
+D1 2F 8A 10 5A 06 8F 3F EE D7 04 52 52 43 4D 00
+84 12 3E D8 50 00 8A D8 04 52 52 41 4D 00 84 12
+3E D8 50 01 98 D8 04 52 4C 41 4D 00 84 12 3E D8
+50 02 A6 D8 04 52 52 55 4D 00 84 12 3E D8 50 03
+08 D8 05 50 55 53 48 4D 84 12 3E D8 00 15 C2 D8
+04 50 4F 50 4D 00 84 12 3E D8 00 17 B4 D8 03 53
+3E 3D 85 12 00 38 DE D8 02 53 3C 00 85 12 00 34
+D0 D8 03 30 3E 3D 85 12 00 30 F2 D8 02 30 3C 00
+85 12 00 30 00 00 02 55 3C 00 85 12 00 2C 06 D9
+03 55 3E 3D 85 12 00 28 FC D8 03 30 3C 3E 85 12
+00 24 1A D9 02 30 3D 00 85 12 00 20 00 00 02 49
+46 00 1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 0E 4A
+30 4D 10 D9 04 54 48 45 4E 00 1A 42 C6 21 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 63 2F
+88 DA 00 00 30 4D 04 D7 04 45 4C 53 45 00 1A 42
+C6 21 BA 40 00 3C 00 00 A2 53 C6 21 2F 83 8F 4A
+00 00 E3 3F 44 D9 05 55 4E 54 49 4C 3A 4F 08 4E
+3E 4F 19 42 C6 21 2A 83 0A 89 0A 11 3A 90 00 FE
+42 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21
+30 4D 88 D7 05 41 47 41 49 4E 0A 4E 38 40 00 3C
+E7 3F 00 00 05 57 48 49 4C 45 87 12 32 D9 76 C4
+2A C4 E8 D8 06 52 45 50 45 41 54 00 87 12 BA D9
+4A D9 2A C4 E6 D9 3D 41 08 4E 3E 4F 2A 48 B2 92
+C4 21 CD 2F 98 42 C6 21 00 00 30 4D 18 D8 03 42
+57 31 84 12 E4 D9 00 00 FE D9 03 42 57 32 84 12
+E4 D9 00 00 0A DA 03 42 57 33 84 12 E4 D9 00 00
+22 DA 3D 41 1A 42 C6 21 28 4E B2 92 C4 21 90 2B
+BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D
+00 00 03 46 57 31 84 12 20 DA 00 00 42 DA 03 46
+57 32 84 12 20 DA 00 00 4E DA 03 46 57 33 84 12
+20 DA 00 00 00 00 05 3F 47 4F 54 4F 3E 90 00 30
 07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0 00 08
-30 4D A2 DC 04 47 4F 54 4F 00 87 12 16 DB F2 CD
-00 CC 2A C4 00 00 05 3F 47 4F 54 4F 87 12 AC DC
-F2 CD 00 CC 2A C4 00 00 03 4A 4D 50 87 12 F2 CD
-F8 DB 2A C4 D6 DC 04 3F 4A 4D 50 00 87 12 AC DC
-F2 CD 78 C4 CA DB 2A C4
+87 12 FC CC 16 CB 2A C4 5A DA 04 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
 @FFFE
-16 D6
+D8 D2
 q
index d0c4742..61619b7 100644 (file)
 @1800
-10 00 08 00 A1 F7 80 3E 05 00 18 00 DE DA 8A D0
-2C 01 7B B0 FC C5 0E C6
+10 00 08 00 A1 F7 80 3E 05 00 18 00 70 D8 D0 CE
+2D 01 6B B0 B6 C4 C8 C4
 @C200
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C2
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C2 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C2 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C2 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C2 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C2 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C2 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C2 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C2 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C3 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C2 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C3 02 31 2D 00
-1E 83 30 4D D8 C2 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C3
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C3 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C3 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C2 01 3E 3E 8F F4 3B EB 37 0E C3 02 42 4C 00
-85 12 20 00 AC C3 04 42 41 53 45 00 85 12 DC 1D
-C8 C2 05 53 54 41 54 45 85 12 BE 1D 96 C3 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 C3 06 55 4D 2F
-4D 4F 44 00 30 12 62 C2 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C2 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C3
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 C3 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 C4
-02 23 53 00 87 12 32 C4 6A C4 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C4 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C3 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C3
-02 44 2E 00 87 12 D2 C3 44 C2 B0 C2 4C C3 64 C4
-BC C2 A2 C4 7E C4 14 C7 DC C6 2A C2 DC C3 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C2
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C4 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 C2
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A C4
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C4 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C4 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C3 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C5 03 4B 45 59 30 40 A0 C5
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 FC C5 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 0E C6 30 4D 00 C5
-06 41 43 43 45 50 54 00 3C 40 6A C6 3B 40 34 C6
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C6 92 B3 DC 05 05 24 18 42 CC 05 38 90
-0A 00 04 20 21 53 39 40 22 C6 4D 15 A2 B3 DC 05
-FD 27 B2 40 11 00 CE 05 E2 C2 03 02 30 41 B2 40
-13 00 CE 05 E2 D2 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C6 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 CC 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 DC 05 FD 27 82 48 CE 05 30 4D 60 C6
-2D 83 92 B3 DC 05 E4 23 FC 27 82 93 DE 1D 02 24
-92 53 DE 1D 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C4 04 45 4D 49 54 00 30 40 8C C6 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 1D 00 00 AF 4F 02 00 8F 3F 82 C6 04 45 43 48
-4F 00 B2 40 82 48 58 C6 82 43 DE 1D 30 4D E0 C4
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C6 92 43
-DE 1D 30 4D 9C C4 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C6 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C6 EF 3F 00 C7
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C5 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C7 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C7 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C5 02 43
-52 00 30 40 46 C7 87 12 52 C7 02 0D 0A 00 14 C7
-2A C2 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C6 82 53 22 00 82 43 B4 1D
-87 12 34 C2 52 C7 C8 C9 34 C2 22 00 B6 C7 80 C7
-3D 41 B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D
-3E 4F 92 B3 C6 1D A2 63 C6 1D 30 4D C0 C6 82 2E
-22 00 87 12 6C C7 34 C2 14 C7 C8 C9 2A C2 00 00
-04 57 4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C2
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C2
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C2
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C2 02 3E 52 00 0E 12 3E 4F 30 4D 70 C2 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C2 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C2 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C2
+01 21 BE 4F 00 00 3E 4F 30 4D CC C2 02 30 3D 00
+1E 83 0E 7E 30 4D FC C2 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C3 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 C3 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 C3 02 23 53 00 87 12 88 C3 C0 C3
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C3
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C2 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C3 34 C2 86 C2 D4 C2 BA C3
+92 C2 F8 C3 D4 C3 D6 C5 42 C9 82 C5 2A C2 22 C3
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C3 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C4 18 42 CC 05 2F 83 8F 4E
+00 00 B0 12 B6 C4 92 B3 DC 05 FD 27 1E 42 CC 05
+B0 12 C8 C4 30 4D A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C2 03 02 30 41 B2 40 13 00 CE 05 E2 D2
+03 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C4
+B0 12 B6 C4 12 D2 0A 18 F9 3F F0 C2 06 41 43 43
+45 50 54 00 3C 40 64 C5 3B 40 2E C5 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C5
+92 B3 DC 05 05 24 18 42 CC 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 CC 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 DC 05
+FD 27 82 48 CE 05 30 4D 5A C5 2D 83 92 B3 DC 05
+E4 23 FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C2 04 45 4D 49
+54 00 30 40 86 C5 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
+02 00 A8 3F 7C C5 04 45 43 48 4F 00 B2 40 82 48
+52 C5 82 43 DE 1D 30 4D 32 C4 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C5 92 43 DE 1D 30 4D 20 C4
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C5
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C5 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C3
+02 43 52 00 30 40 08 C6 87 12 1E C6 02 0D 0A 00
+D6 C5 2A C2 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C3 82 53 22 00 82 43 B4 1D 87 12 14 C6
+1E C6 B0 C8 14 C6 22 00 80 C6 4C C6 B2 40 20 00
+B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41 3E 4F
+30 4D BA C5 82 2E 22 00 87 12 38 C6 14 C6 D6 C5
+B0 C8 2A C2 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52 C4 1D
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D
 F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E
@@ -104,302 +86,281 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C2 34 40 00 C2 30 4D A2 C3 07 3E
+00 00 35 40 0E C2 34 40 00 C2 30 4D 82 C2 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43
-2D 15 3D 40 10 C9 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 C9 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C3
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C6 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C3 01 2C 1A 42 C6 1D A2 53 C6 1D
-8A 4E 00 00 3E 4F 30 4D C6 C9 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D
-BA 40 34 C2 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C7 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F
-C2 1D 3E 4F 82 43 C4 1D 30 4D 87 12 2A CA B0 C3
-B6 C7 44 CA 3D 40 4C CA E2 22 5D 3E 4E CA 0A 4E
-3E 4F 3D 40 64 CA 39 27 3D 40 3E CA 1A E2 BE 1D
-B3 27 AD 23 66 CA 3E 4F 3D 40 3E CA BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CD
-CD 3F B6 C9 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 1D 3C 49 3B 49 3A 49 3D 15 B0 12 2A C2 3A CA
-A2 CA B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41
-30 4D 6C C3 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 1D 0C 43 2D 15 3D 40 F4 C7 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 C7 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E C3 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E C4 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 C2 01 2C
+1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D
+EC C4 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D
+A6 C5 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE C8 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
+1A 42 C6 1D A2 52 C6 1D BA 40 14 C6 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 C6 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
+30 4D 85 12 20 00 87 12 32 C9 42 C9 80 C6 50 C9
+3D 40 58 C9 CC 22 82 3E 5A C9 0A 4E 3E 4F 3D 40
+70 C9 23 27 3D 40 4A C9 1A E2 BE 1D A1 27 B5 23
+72 C9 3E 4F 3D 40 4A C9 B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 CC CB 3F D2 C8
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D 3C 49
+3B 49 3A 49 3D 15 B0 12 2A C2 46 C9 AE C9 B2 41
+C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D 85 12
+BE 1D 08 C3 04 51 55 49 54 00 82 43 08 18 31 40
 E0 1C B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A C2
-42 C7 92 C6 DC C6 3A CA DE C2 70 C3 52 C7 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CB 34 C2
-30 FF F2 C4 8A C3 52 C7 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CB 24 C5 D0 CA C0 C5 05 41 42 4F
-52 54 3F 40 80 1C D1 3F 0C CB 86 41 42 4F 52 54
-22 00 87 12 6C C7 34 C2 2E CB C8 C9 2A C2 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D2 B0 12
-FC C5 92 C3 DC 05 38 40 A0 AA 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 DC 05 F2 23 87 12
-6A D2 34 C2 DE 1D F2 C2 B2 C6 52 C7 04 1B 5B 37
-6D 00 14 C7 54 C2 28 C5 8A CB 42 C7 52 C7 05 6C
-69 6E 65 3A 14 C7 40 C3 D2 C4 14 C7 52 C7 04 1B
-5B 30 6D 00 14 C7 12 CB 00 00 83 5B 27 5D 87 12
-B0 CB 34 C2 34 C2 C8 C9 C8 C9 2A C2 08 C8 01 27
-87 12 B0 C3 B6 C7 0E C8 28 C5 BE CB 2A C2 6E CA
-CE C3 81 5C 92 42 C0 1D C4 1D 30 4D 9A CB 81 5B
-82 43 BE 1D 30 4D C2 CB 01 5D B2 43 BE 1D 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C5 82 49 53 00 87 12
-C8 C3 F2 C2 28 C5 02 CC 9E CB 34 C2 E0 CB C8 C9
-2A C2 B0 CB E0 CB 2A C2 EA CB 09 49 4D 4D 45 44
+04 C6 8C C5 42 C9 82 C5 46 C9 A4 C2 0C C3 1E C6
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 CA
+14 C6 30 FF A0 C8 26 C3 1E C6 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 CA 3C C4 E0 C9 C2 C8 05 41
+42 4F 52 54 3F 40 80 1C D0 3F 1E CA 86 41 42 4F
+52 54 22 00 87 12 38 C6 14 C6 40 CA B0 C8 2A C2
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 CF
+B0 12 B6 C4 92 C3 DC 05 38 40 A0 AA 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 DC 05 F3 23 87 12
+42 CF 14 C6 DE 1D EA C2 AC C5 1E C6 04 1B 5B 37
+6D 00 D6 C5 58 C2 40 C4 9A CA 04 C6 1E C6 05 6C
+69 6E 65 3A D6 C5 D0 C2 24 C4 D6 C5 1E C6 04 1B
+5B 30 6D 00 D6 C5 24 CA 00 00 83 5B 27 5D 87 12
+C0 CA 14 C6 14 C6 B0 C8 B0 C8 2A C2 E8 C6 01 27
+87 12 42 C9 80 C6 EE C6 40 C4 CE CA 2A C2 7A C9
+32 C3 81 5C 92 42 C0 1D C4 1D 30 4D AA CA 81 5B
+82 43 BE 1D 30 4D D2 CA 01 5D B2 43 BE 1D 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A C8 82 49 53 00 87 12
+BE C9 EA C2 40 C4 12 CB AE CA 14 C6 F0 CA B0 C8
+2A C2 C0 CA F0 CA 2A C2 FA CA 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D
-68 C7 87 52 45 43 55 52 53 45 19 42 C6 1D 99 42
-BA 1D 00 00 A2 53 C6 1D 30 4D B4 CA 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C3 B6 C7 0E C8 54 C2
-28 C5 BE CB 70 C3 28 C5 66 CC 34 C2 34 C2 C8 C9
-C8 C9 34 C2 C8 C9 C8 C9 2A C2 CE CB 81 3B 82 93
-BE 1D A8 27 87 12 34 C2 2A C2 C8 C9 04 CD D0 CB
-2A C2 6C CC 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CC BA 40 87 12 FC FF A2 83 C6 1D B2 43
-BE 1D 82 4F BC 1D 30 4D 84 CC 01 3A 30 12 A4 CC
-87 12 92 C7 B0 C3 B6 C7 CA CC 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CC 02 00
-82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A
-C6 1D 30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42
-B8 1D A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C7
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CB B0 C7 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CC BA 40 86 12 FC FF E4 3F 16 CA 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CC BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CD 06 43 52 45 41 54
-45 00 B0 12 C0 CC BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CA 05 44 4F 45 53 3E 1A 42 BA 1D BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CD 05 44
-45 46 45 52 30 12 12 CD 8B 3F 6E C8 05 3E 42 4F
-44 59 2E 52 30 4D 6A CD 04 43 4F 44 45 00 B0 12
-C0 CC 2A 82 82 4A C6 1D 87 12 B2 CC 94 D0 66 D0
-2A C2 B8 CD 07 43 4F 44 45 4E 4E 4D 87 12 8C CC
-D0 CB C2 CD 2A C2 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D0 04 CD 2A C2 1A CB 03 41 53 4D 92 42
-DA 1D EC 1D B2 40 6A D0 DA 1D D9 3F E8 CD 06 45
-4E 44 41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00
-A2 53 C6 1D B2 43 BE 1D 30 40 AE D0 00 00 05 4C
-4F 32 48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40
-2A C2 02 00 A2 52 C6 1D ED 3F 0A CC 85 48 49 32
-4C 4F 87 12 F2 C4 8C CE C8 C9 D0 CB 94 D0 66 D0
-2A C2 5C CE 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 1D A2 52 C6 1D BE 40 28 C5 00 00 2E 53 30 4D
-9E CD 84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D
-BA 40 24 C5 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C7 84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F
-30 4D D4 CD 85 42 45 47 49 4E 30 40 F2 C4 B2 CE
-85 55 4E 54 49 4C 39 40 28 C5 A2 52 C6 1D 1A 42
-C6 1D 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CD
-85 41 47 41 49 4E 39 40 24 C5 EF 3F 34 CD 85 57
-48 49 4C 45 87 12 78 CE 78 C2 2A C2 22 CC 86 52
-45 50 45 41 54 00 87 12 F6 CE B8 CE 2A C2 92 CE
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42
-C6 1D BE 40 3C C5 FE FF A2 53 00 1C 1A 42 00 1C
-8A 43 00 00 30 4D DA C9 84 4C 4F 4F 50 00 39 40
-5E C5 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C5 85 2B 4C 4F
-4F 50 39 40 4C C5 E5 3F 48 CF 85 4C 45 41 56 45
-1A 42 C6 1D BA 40 6E C5 00 00 BA 40 24 C5 02 00
-B2 50 06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C
-89 4A 00 00 30 4D 8A CF 04 4D 4F 56 45 00 0A 4E
+C4 C9 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 C9
+80 C6 EE C6 58 C2 40 C4 CE CA 0C C3 40 C4 5C CB
+14 C6 14 C6 B0 C8 B0 C8 14 C6 B0 C8 B0 C8 2A C2
+DE CA 81 3B 82 93 BE 1D B5 27 87 12 14 C6 2A C2
+B0 C8 FA CB E0 CA 2A C2 62 CB 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 CB 2F 83 8F 4E 00 00 1E 42 C6 1D
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 30 4D
+7A CB 01 3A 30 12 A0 CB 92 B3 C6 1D A2 63 C6 1D
+87 12 42 C9 80 C6 C8 CB 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F
+BC 1D 2A 52 82 4A C6 1D 30 41 82 9F BC 1D 09 20
+18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E C6 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C CA 90 C9 05 44 45 46 45 52
+B0 12 B8 CB BA 40 30 40 FC FF BA 40 AE CB FE FF
+E3 3F 1E C9 06 43 52 45 41 54 45 00 B0 12 B8 CB
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A CC 05 44
+4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E C7 05 3E 42 4F 44 59 2E 52
+30 4D 44 CC 04 43 4F 44 45 00 B0 12 B8 CB A2 82
+C6 1D 87 12 D2 CE AC CE 2A C2 84 CC 07 43 4F 44
+45 4E 4E 4D B0 12 86 CB F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 CE FA CB 2A C2 2C CA 03 41
+53 4D B2 40 B0 CE DA 1D E0 3F AC CC 06 45 4E 44
+41 53 4D 00 87 12 B4 CC F4 CE 2A C2 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53
+C6 1D B2 43 BE 1D 30 40 E0 CE 00 00 05 4C 4F 32
+48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A C2
+02 00 A2 52 C6 1D ED 3F 1A CB 85 48 49 32 4C 4F
+87 12 A0 C8 4A CD B0 C8 E0 CA D2 CE AC CE 2A C2
+1A CD 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
+A2 52 C6 1D BE 40 40 C4 00 00 2E 53 30 4D 5E CC
+84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40
+3C C4 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 C5
+84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D
+9C CC 85 42 45 47 49 4E 30 40 A0 C8 70 CD 85 55
+4E 54 49 4C 39 40 40 C4 A2 52 C6 1D 1A 42 C6 1D
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE CC 85 41
+47 41 49 4E 39 40 3C C4 EF 3F 7A C6 85 57 48 49
+4C 45 87 12 36 CD 76 C2 2A C2 34 C6 86 52 45 50
+45 41 54 00 87 12 B4 CD 76 CD 2A C2 50 CD 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D
+BE 40 54 C4 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
+00 00 30 4D E2 C8 84 4C 4F 4F 50 00 39 40 76 C4
+A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
+1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 C4 85 2B 4C 4F 4F 50
+39 40 64 C4 E5 3F 06 CE 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE CE
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CD
-34 C2 10 00 34 C2 00 00 3C C5 34 C2 00 00 C8 C9
-5E C5 0A D0 F2 C4 34 C2 C8 1D 44 C2 F2 C2 C8 C9
-FA C2 8A CD 34 C2 CA 1D FA C2 2A C2 AE CB 05 46
-4F 52 54 48 84 12 24 D0 8E D0 C2 D3 CC D0 2E D0
-74 CE 7C CF F8 D1 BE D0 8E D2 A8 D2 D0 CE 34 D3
-00 00 CC D1 D8 CB AC CD 00 00 F0 CE 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D0 C8 D9 30 DA 7C D9
-9A DA 42 D9 BE DA 6E D6 00 00 38 D9 E8 D9 9A D9
-D8 D9 7E D7 00 00 00 00 CC DA 58 D0 5C D0 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D
-9D 3F 3C CC 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 1D 38 40 CA 1D 8A 3F 9E C7 04 4F
-4E 4C 59 00 82 43 CC 1D 30 4D 20 CF 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D
-C4 CE 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CC 86 5B 54 48 45 4E 5D 00 30 4D 14 D1
-86 5B 45 4C 53 45 5D 00 87 12 34 C2 00 00 36 C3
-B0 C3 B6 C7 1C CA 44 C2 28 C5 8E D1 8A C2 8A C2
-52 C7 06 5B 54 48 45 4E 5D 00 EA D0 32 C5 5C D1
-36 C7 40 C3 54 C2 32 C5 30 D1 2A C2 8A C2 8A C2
-52 C7 06 5B 45 4C 53 45 5D 00 EA D0 32 C5 7C D1
-36 C7 40 C3 54 C2 32 C5 2E D1 2A C2 52 C7 04 5B
-49 46 5D 00 EA D0 32 C5 30 D1 24 C5 2E D1 36 C7
-52 C7 05 0D 0A 6B 6F 20 14 C7 92 C6 2A CA 24 C5
-30 D1 20 D1 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D1 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C3 B6 C7 0E C8 6C C2 2A C2 B4 D1 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C3 B6 C7 0E C8
-6C C2 64 C3 2A C2 E8 D1 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 CF 06 4D 41 52 4B 45 52 00
-B0 12 C0 CC BA 40 84 12 FC FF BA 40 E6 D1 FE FF
-9A 42 C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D
-30 40 0A CD 34 D0 C4 D0 D8 D0 2C D2 3A 4E 82 4A
-C8 1D 2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D0
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D2 8A D0
-DE DA 0E CF 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D2 92 42 0C 18 70 D2 EF 3F 60 D2 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 1D 6E D2 92 42
-C6 1D 70 D2 30 4D 74 D2 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F
-F0 CF 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C6 24 C6 B2 40 3E D3 3C D3
-B2 40 8A D0 0E 18 B2 40 DE DA 0C 18 30 12 7E D2
-B2 40 8C C6 8A C6 B2 40 46 C7 44 C7 B2 40 A0 C5
-9E C5 B2 40 18 00 0A 18 37 40 1A C2 36 40 BC C2
-35 40 0E C2 34 40 00 C2 39 40 10 00 29 83 89 43
-E0 1D FC 23 B2 40 0A 00 DC 1D B2 40 20 00 B4 1D
-30 41 C2 D2 04 57 41 52 4D 00 30 40 3E D3 3D 40
-72 D3 92 C3 30 01 1E 42 08 18 0E 93 11 24 D2 B3
-01 02 02 20 3E E3 1E 53 F2 D0 03 00 0D 02 3E 90
-0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27 87 2F
-30 4D 52 C7 06 0D 1B 5B 37 6D 23 00 14 C7 E2 C4
-52 C7 1F 46 61 73 74 46 6F 72 74 68 20 56 33 30
-30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
-73 20 14 C7 34 C2 80 FF F2 C4 28 C3 D2 C4 52 C7
-0B 62 79 74 65 73 20 66 72 65 65 20 24 C5 8A CB
-E2 D0 04 43 4F 4C 44 00 92 B3 CA 05 FD 23 B2 40
-04 A5 20 01 92 D3 30 01 B2 40 88 5A 5C 01 B2 40
-EF 7F 06 02 B2 43 02 02 E2 D2 05 02 B2 40 08 FF
-02 02 B2 D0 08 FF 06 02 B2 D0 F0 00 04 02 F2 40
-F0 00 22 03 F2 D0 F0 00 26 03 F2 D0 0F 00 24 03
-F2 40 A5 00 61 01 B2 40 80 00 62 01 82 43 66 01
-39 40 00 01 B2 40 33 00 64 01 D2 43 61 01 92 D2
-9E 01 08 18 38 40 59 14 18 83 FE 23 19 83 FA 23
-B2 D2 B0 01 92 C3 B0 01 F2 D0 10 00 2A 03 F2 C0
-40 00 A1 04 39 40 00 04 29 83 89 43 00 1C FC 23
-39 40 32 00 29 83 B9 40 D4 D3 CE FF FB 23 B2 40
-2C C6 F0 FF B2 40 81 00 C0 05 92 42 02 18 C6 05
-92 42 04 18 C8 05 92 C3 C0 05 92 D3 DA 05 3F 40
-80 1C 31 40 E0 1C 30 12 3A D3 33 3F 38 40 C0 1D
-39 48 2A 48 09 5A 1A 52 C4 1D 09 9A 03 24 7E 9A
-FC 27 1A 83 0E 4A 2A 88 82 4A C4 1D 30 4D 1C 15
-B0 12 2A C2 B6 C7 0E C8 32 C5 D4 D4 CA C8 28 C5
-BE CB F6 D4 D6 D4 29 4E 39 90 86 12 02 20 2E 53
-0A 3C 39 90 85 12 03 20 1E 4E 02 00 04 3C 39 90
-84 12 01 20 2E 52 1B 17 30 41 3E 40 28 00 B0 12
-BE D4 19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 C6
+CA 1D F2 C2 2A C2 84 12 7E CE AE CD 56 D1 DE CD
+BE CA 32 CD 3A CE 6A D2 64 C6 66 CF 80 CF 8E CD
+00 D0 00 00 3C D2 E8 CA 78 CC 00 00 84 12 7E CE
+88 D7 EA D7 3C D7 5E D8 02 D7 00 00 32 D4 00 00
+F8 D6 A8 D7 5A D7 98 D7 42 D5 00 00 00 00 3A D8
+AA CE 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D C6 3F
+3A 40 0E 00 39 40 CC 1D 38 40 CA 1D B9 3F 82 43
+CC 1D 30 4D 92 42 CA 1D DA 1D 30 4D 86 CE EE CE
+F4 CE 04 CF 3A 4E 82 4A C8 1D 2E 4E 82 4E C6 1D
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 CB 09 50 57 52 5F 53 54 41
+54 45 84 12 FC CE D0 CE 70 D8 CC CD 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 CF 92 42 0C 18
+48 CF EF 3F 38 CF 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 1D 46 CF 92 42 C6 1D 48 CF 30 4D 4C CF
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 1D 0E 18
+92 42 C6 1D 0C 18 EC 3F BC CD 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 C4
+DE C4 B2 40 0A D0 08 D0 B2 40 D0 CE 0E 18 B2 40
+70 D8 0C 18 30 12 56 CF B2 40 86 C5 84 C5 B2 40
+08 C6 06 C6 B2 40 98 C4 96 C4 B2 40 18 00 0A 18
+37 40 1A C2 36 40 92 C2 35 40 0E C2 34 40 00 C2
+B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41 9A CF
+04 57 41 52 4D 00 30 40 0A D0 3D 40 3E D0 92 C3
+30 01 1E 42 08 18 0E 93 11 24 D2 B3 01 02 02 20
+3E E3 1E 53 F2 D0 03 00 0D 02 3E 90 0A 00 B8 27
+3E 90 16 00 B5 2F 2E 93 84 27 8D 2F 30 4D 1E C6
+06 0D 1B 5B 37 6D 23 00 D6 C5 34 C4 1E C6 19 46
+61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54
+68 6F 6F 72 65 6E 73 20 D6 C5 14 C6 30 FF A0 C8
+B8 C2 24 C4 1E C6 0A 62 79 74 65 73 20 66 72 65
+65 00 3C C4 9A CA 82 CD 04 43 4F 4C 44 00 92 B3
+CA 05 FD 23 B2 40 04 A5 20 01 3E D0 92 D3 30 01
+B2 40 88 5A 5C 01 B2 43 06 02 B2 40 EF 7F 02 02
+E2 D2 05 02 B2 43 26 02 B2 D0 08 FF 22 02 F2 D3
+26 03 F2 40 F0 00 22 03 F2 40 A5 00 61 01 B2 40
+80 00 62 01 82 43 66 01 39 40 00 01 B2 40 33 00
+64 01 D2 43 61 01 92 D2 9E 01 08 18 38 40 59 14
+18 83 FE 23 19 83 FA 23 B2 D2 B0 01 92 C3 B0 01
+F2 D0 10 00 2A 03 F2 C0 40 00 A1 04 39 40 00 04
+29 83 89 43 00 1C FC 23 39 40 32 00 29 83 B9 40
+9C D0 CE FF FB 23 B2 40 26 C5 F0 FF B2 40 81 00
+C0 05 92 42 02 18 C6 05 92 42 04 18 C8 05 92 C3
+C0 05 92 D3 DA 05 3F 40 80 1C 31 40 E0 1C 30 12
+06 D0 43 3F 88 D0 07 43 4F 4D 50 41 52 45 0C 4E
+38 4F 3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30
+1C 83 07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43
+30 4D 1E 43 30 4D B2 CB 86 5B 54 48 45 4E 5D 00
+30 4D 88 D1 86 5B 45 4C 53 45 5D 00 87 12 14 C6
+00 00 C6 C2 42 C9 80 C6 24 C9 34 C2 40 C4 FE D1
+44 C2 1E C6 06 5B 54 48 45 4E 5D 00 5E D1 4A C4
+CE D1 F8 C5 D0 C2 58 C2 4A C4 A4 D1 2A C2 44 C2
+1E C6 06 5B 45 4C 53 45 5D 00 5E D1 4A C4 EC D1
+F8 C5 D0 C2 58 C2 4A C4 A2 D1 2A C2 1E C6 04 5B
+49 46 5D 00 5E D1 4A C4 A4 D1 3C C4 A2 D1 F8 C5
+1E C6 05 0D 0A 6B 6F 20 D6 C5 8C C5 32 C9 3C C4
+A4 D1 94 D1 84 5B 49 46 5D 00 0E 93 3E 4F BE 27
+30 4D 14 D2 89 5B 44 45 46 49 4E 45 44 5D 87 12
+42 C9 80 C6 EE C6 6A C2 2A C2 24 D2 8B 5B 55 4E
+44 45 46 49 4E 45 44 5D 87 12 42 C9 80 C6 EE C6
+6A C2 00 C3 2A C2 58 D2 3D 41 B2 4E 0E 18 A2 4E
+0C 18 3E 4F 30 40 56 CF 48 CE 06 4D 41 52 4B 45
+52 00 B0 12 B8 CB BA 40 84 12 FC FF BA 40 56 D2
+FE FF 9A 42 C8 1D 00 00 28 83 8A 48 02 00 A2 52
+C6 1D 30 40 00 CC 1C 15 B0 12 2A C2 80 C6 EE C6
+4A C4 AC D2 AA C7 40 C4 CE CA C6 D2 AE D2 39 4E
+39 80 86 12 08 24 19 53 02 20 2E 4E 04 3C 2E 53
+19 53 01 24 2E 82 1B 17 30 41 3E 40 28 00 B0 12
+96 D2 19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40
 29 00 1C 15 12 12 C4 1D 92 53 C4 1D B0 12 2A C2
-B6 C7 CA C8 28 C5 34 D5 2A D5 21 53 3E 90 10 00
-83 2D E1 2B 36 D5 B2 41 C4 1D DD 3F 87 12 B0 C3
-9C D4 44 D5 0C 43 1B 42 C6 1D A2 53 C6 1D 6A 4E
-3E 4F 7A 90 23 00 2D 20 92 53 C4 1D B0 12 BE D4
-0E 93 03 20 3C 40 00 03 21 3C 1E 93 03 20 3C 40
-10 03 1C 3C 2E 93 03 20 3C 40 20 03 17 3C 2E 92
-03 20 3C 40 20 02 12 3C 3E 92 03 20 3C 40 30 02
-0D 3C 3E 93 03 20 3C 40 30 03 08 3C 3C 40 30 00
-19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 4F 3D 41
-30 4D 7A 90 26 00 07 20 3C 40 10 02 92 53 C4 1D
-B0 12 BE D4 ED 3F 7A 90 40 00 16 20 3C 40 20 00
-92 53 C4 1D B0 12 12 D5 0C 20 3C 50 10 00 3E 40
-2B 00 B0 12 12 D5 92 92 C0 1D C4 1D 02 24 92 53
-C4 1D 8E 10 0C 5E DA 3F B0 12 12 D5 FA 23 3C 50
-10 00 B0 12 FA D4 EF 3F 0C 43 1B 42 C6 1D A2 53
-C6 1D 87 12 B0 C3 9C D4 1A D6 FE 90 26 00 00 00
-3E 40 20 00 03 20 3C 50 82 00 C8 3F B0 12 12 D5
-E1 23 3C 50 80 00 B0 12 FA D4 DC 3F 1C C6 04 52
-45 54 49 00 87 12 34 C2 00 13 C8 C9 2A C2 34 C2
-2C 00 3C D5 12 D6 58 D6 2E 4E 0E DC 09 4B A4 3F
-3E CE 03 4D 4F 56 84 12 4E D6 00 40 62 D6 05 4D
-4F 56 2E 42 84 12 4E D6 40 40 00 00 03 41 44 44
-84 12 4E D6 00 50 7C D6 05 41 44 44 2E 42 84 12
-4E D6 40 50 88 D6 04 41 44 44 43 00 84 12 4E D6
-00 60 96 D6 06 41 44 44 43 2E 42 00 84 12 4E D6
-40 60 3E D6 04 53 55 42 43 00 84 12 4E D6 00 70
-B4 D6 06 53 55 42 43 2E 42 00 84 12 4E D6 40 70
-C2 D6 03 53 55 42 84 12 4E D6 00 80 D2 D6 05 53
-55 42 2E 42 84 12 4E D6 40 80 20 CE 03 43 4D 50
-84 12 4E D6 00 90 EC D6 05 43 4D 50 2E 42 84 12
-4E D6 40 90 0E CE 04 44 41 44 44 00 84 12 4E D6
-00 A0 06 D7 06 44 41 44 44 2E 42 00 84 12 4E D6
-40 A0 F8 D6 03 42 49 54 84 12 4E D6 00 B0 24 D7
-05 42 49 54 2E 42 84 12 4E D6 40 B0 30 D7 03 42
-49 43 84 12 4E D6 00 C0 3E D7 05 42 49 43 2E 42
-84 12 4E D6 40 C0 4A D7 03 42 49 53 84 12 4E D6
-00 D0 58 D7 05 42 49 53 2E 42 84 12 4E D6 40 D0
-00 00 03 58 4F 52 84 12 4E D6 00 E0 72 D7 05 58
-4F 52 2E 42 84 12 4E D6 40 E0 A4 D6 03 41 4E 44
-84 12 4E D6 00 F0 8C D7 05 41 4E 44 2E 42 84 12
-4E D6 40 F0 B0 C3 3C D5 AA D7 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F DE D6 03 52 52 43
-84 12 A4 D7 00 10 BC D7 05 52 52 43 2E 42 84 12
-A4 D7 40 10 C8 D7 04 53 57 50 42 00 84 12 A4 D7
-80 10 D6 D7 03 52 52 41 84 12 A4 D7 00 11 E4 D7
-05 52 52 41 2E 42 84 12 A4 D7 40 11 F0 D7 03 53
-58 54 84 12 A4 D7 80 11 00 00 04 50 55 53 48 00
-84 12 A4 D7 00 12 0A D8 06 50 55 53 48 2E 42 00
-84 12 A4 D7 40 12 64 D7 04 43 41 4C 4C 00 84 12
-A4 D7 80 12 1A 53 0E 4A 87 12 E2 C4 52 C7 0D 6F
-75 74 20 6F 66 20 62 6F 75 6E 64 73 3A CB B0 C3
-9C D4 54 D8 92 53 C4 1D 3E 40 2C 00 B0 12 2A C2
-B6 C7 CA C8 28 C5 BE CB 08 D6 6C D8 0A 4E 3E 4F
-1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
-0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92
-D1 2F 8A 10 5A 06 8F 3F FE D7 04 52 52 43 4D 00
-84 12 4E D8 50 00 9A D8 04 52 52 41 4D 00 84 12
-4E D8 50 01 A8 D8 04 52 4C 41 4D 00 84 12 4E D8
-50 02 B6 D8 04 52 52 55 4D 00 84 12 4E D8 50 03
-18 D8 05 50 55 53 48 4D 84 12 4E D8 00 15 D2 D8
-04 50 4F 50 4D 00 84 12 4E D8 00 17 85 12 00 3C
-C4 D8 03 53 3E 3D 85 12 00 38 F2 D8 02 53 3C 00
-85 12 00 34 E0 D8 03 30 3E 3D 85 12 00 30 06 D9
+80 C6 AA C7 40 C4 04 D3 FA D2 21 53 3E 90 10 00
+7D 2D E1 2B 06 D3 B2 41 C4 1D DD 3F 87 12 42 C9
+74 C6 14 D3 0C 43 1B 42 C6 1D A2 53 C6 1D 6A 4E
+3E 4F 7A 90 23 00 27 20 92 53 C4 1D B0 12 96 D2
+3C 40 00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24
+3C 40 20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24
+3C 40 30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24
+3C 40 30 00 19 42 C6 1D A2 53 C6 1D 89 4E 00 00
+3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02
+92 53 C4 1D B0 12 96 D2 ED 3F 7A 90 40 00 16 20
+3C 40 20 00 92 53 C4 1D B0 12 E2 D2 0C 20 3C 50
+10 00 3E 40 2B 00 B0 12 E2 D2 92 92 C0 1D C4 1D
+02 24 92 53 C4 1D 8E 10 0C 5E DA 3F B0 12 E2 D2
+FA 23 3C 50 10 00 B0 12 CA D2 EF 3F 0C 43 1B 42
+C6 1D A2 53 C6 1D 87 12 42 C9 74 C6 DE D3 FE 90
+26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F
+B0 12 E2 D2 E1 23 3C 50 80 00 B0 12 CA D2 DC 3F
+D6 C4 04 52 45 54 49 00 87 12 14 C6 00 13 B0 C8
+2A C2 14 C6 2C 00 0C D3 D6 D3 1C D4 09 4B 2E 4E
+0E DC A4 3F FC CC 03 4D 4F 56 84 12 12 D4 00 40
+26 D4 05 4D 4F 56 2E 42 84 12 12 D4 40 40 00 00
+03 41 44 44 84 12 12 D4 00 50 40 D4 05 41 44 44
+2E 42 84 12 12 D4 40 50 4C D4 04 41 44 44 43 00
+84 12 12 D4 00 60 5A D4 06 41 44 44 43 2E 42 00
+84 12 12 D4 40 60 02 D4 04 53 55 42 43 00 84 12
+12 D4 00 70 78 D4 06 53 55 42 43 2E 42 00 84 12
+12 D4 40 70 86 D4 03 53 55 42 84 12 12 D4 00 80
+96 D4 05 53 55 42 2E 42 84 12 12 D4 40 80 DE CC
+03 43 4D 50 84 12 12 D4 00 90 B0 D4 05 43 4D 50
+2E 42 84 12 12 D4 40 90 CC CC 04 44 41 44 44 00
+84 12 12 D4 00 A0 CA D4 06 44 41 44 44 2E 42 00
+84 12 12 D4 40 A0 BC D4 03 42 49 54 84 12 12 D4
+00 B0 E8 D4 05 42 49 54 2E 42 84 12 12 D4 40 B0
+F4 D4 03 42 49 43 84 12 12 D4 00 C0 02 D5 05 42
+49 43 2E 42 84 12 12 D4 40 C0 0E D5 03 42 49 53
+84 12 12 D4 00 D0 1C D5 05 42 49 53 2E 42 84 12
+12 D4 40 D0 00 00 03 58 4F 52 84 12 12 D4 00 E0
+36 D5 05 58 4F 52 2E 42 84 12 12 D4 40 E0 68 D4
+03 41 4E 44 84 12 12 D4 00 F0 50 D5 05 41 4E 44
+2E 42 84 12 12 D4 40 F0 42 C9 0C D3 6E D5 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F A2 D4
+03 52 52 43 84 12 68 D5 00 10 80 D5 05 52 52 43
+2E 42 84 12 68 D5 40 10 8C D5 04 53 57 50 42 00
+84 12 68 D5 80 10 9A D5 03 52 52 41 84 12 68 D5
+00 11 A8 D5 05 52 52 41 2E 42 84 12 68 D5 40 11
+B4 D5 03 53 58 54 84 12 68 D5 80 11 00 00 04 50
+55 53 48 00 84 12 68 D5 00 12 CE D5 06 50 55 53
+48 2E 42 00 84 12 68 D5 40 12 28 D5 04 43 41 4C
+4C 00 84 12 68 D5 80 12 1A 53 0E 4A 87 12 34 C4
+1E C6 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+4C CA 42 C9 74 C6 18 D6 92 53 C4 1D 3E 40 2C 00
+B0 12 2A C2 80 C6 AA C7 40 C4 CE CA CC D3 30 D6
+0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E
+94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F C2 D5 04 52
+52 43 4D 00 84 12 12 D6 50 00 5E D6 04 52 52 41
+4D 00 84 12 12 D6 50 01 6C D6 04 52 4C 41 4D 00
+84 12 12 D6 50 02 7A D6 04 52 52 55 4D 00 84 12
+12 D6 50 03 DC D5 05 50 55 53 48 4D 84 12 12 D6
+00 15 96 D6 04 50 4F 50 4D 00 84 12 12 D6 00 17
+88 D6 03 53 3E 3D 85 12 00 38 B2 D6 02 53 3C 00
+85 12 00 34 A4 D6 03 30 3E 3D 85 12 00 30 C6 D6
 02 30 3C 00 85 12 00 30 00 00 02 55 3C 00 85 12
-00 2C 1A D9 03 55 3E 3D 85 12 00 28 10 D9 03 30
-3C 3E 85 12 00 24 2E D9 02 30 3D 00 85 12 00 20
+00 2C DA D6 03 55 3E 3D 85 12 00 28 D0 D6 03 30
+3C 3E 85 12 00 24 EE D6 02 30 3D 00 85 12 00 20
 00 00 02 49 46 00 1A 42 C6 1D 8A 4E 00 00 A2 53
-C6 1D 0E 4A 30 4D 24 D9 04 54 48 45 4E 00 1A 42
+C6 1D 0E 4A 30 4D E4 D6 04 54 48 45 4E 00 1A 42
 C6 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
-00 02 61 2F 88 DA 00 00 30 4D 14 D7 04 45 4C 53
+00 02 63 2F 88 DA 00 00 30 4D D8 D4 04 45 4C 53
 45 00 1A 42 C6 1D BA 40 00 3C 00 00 A2 53 C6 1D
-2F 83 8F 4A 00 00 E3 3F 58 D9 05 55 4E 54 49 4C
+2F 83 8F 4A 00 00 E3 3F 18 D7 05 55 4E 54 49 4C
 3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11
-3A 90 00 FE 40 3B 3A F0 FF 03 08 DA 89 48 00 00
-A2 53 C6 1D 30 4D 98 D7 05 41 47 41 49 4E 87 12
-EC D8 A0 D9 2A C2 00 00 05 57 48 49 4C 45 87 12
-46 D9 78 C2 2A C2 FC D8 06 52 45 50 45 41 54 00
-87 12 EC D8 A0 D9 5E D9 2A C2 FC D9 3D 41 2E 4E
-08 4E 3E 4F 2A 48 0A 93 88 43 00 00 CA 23 98 42
-C6 1D 00 00 30 4D 28 D8 03 42 57 31 84 12 FA D9
-E0 1D 18 DA 03 42 57 32 84 12 FA D9 E2 1D 24 DA
-03 42 57 33 84 12 FA D9 E4 1D 3C DA 3D 41 1A 42
-C6 1D 2E 4E 28 4E 08 93 8E 43 00 00 8B 23 BA 4F
-00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00
-03 46 57 31 84 12 3A DA E6 1D 60 DA 03 46 57 32
-84 12 3A DA E8 1D 6C DA 03 46 57 33 84 12 3A DA
-EA 1D 3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10
-02 24 3E E0 00 08 30 4D 78 DA 04 47 4F 54 4F 00
-87 12 EC D8 B0 CB BE C9 2A C2 00 00 05 3F 47 4F
-54 4F 87 12 82 DA B0 CB BE C9 2A C2 00 00 03 4A
-4D 50 87 12 B0 CB CE D9 2A C2 AC DA 04 3F 4A 4D
-50 00 87 12 82 DA B0 CB 78 C2 A0 D9 2A C2
+3A 90 00 FE 42 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C6 1D 30 4D 5C D5 05 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 87 12
+06 D7 76 C2 2A C2 BC D6 06 52 45 50 45 41 54 00
+87 12 8E D7 1E D7 2A C2 BA D7 3D 41 08 4E 3E 4F
+2A 48 B2 92 C4 1D CD 2F 98 42 C6 1D 00 00 30 4D
+EC D5 03 42 57 31 84 12 B8 D7 00 00 D2 D7 03 42
+57 32 84 12 B8 D7 00 00 DE D7 03 42 57 33 84 12
+B8 D7 00 00 F6 D7 3D 41 1A 42 C6 1D 28 4E B2 92
+C4 1D 90 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00
+3E 4F 30 4D 00 00 03 46 57 31 84 12 F4 D7 00 00
+16 D8 03 46 57 32 84 12 F4 D7 00 00 22 D8 03 46
+57 33 84 12 F4 D7 00 00 00 00 05 3F 47 4F 54 4F
+3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10 02 24
+3E E0 00 08 87 12 C0 CA DA C8 2A C2 2E D8 04 47
+4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
 @FFFE
-D4 D3
+9C D0
 q
index 2f3d8a5..ff7c6ca 100644 (file)
 @1800
-10 00 08 00 00 D6 E8 03 05 00 18 00 DA DA 8A D0
-2C 01 7B B0 FC C5 0E C6
+10 00 08 00 00 D6 E8 03 05 00 18 00 6C D8 D0 CE
+2D 01 6B B0 B6 C4 C8 C4
 @C200
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C2
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C2 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C2 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C2 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C2 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C2 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C2 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C2 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C2 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C3 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C2 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C3 02 31 2D 00
-1E 83 30 4D D8 C2 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C3
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C3 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C3 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C2 01 3E 3E 8F F4 3B EB 37 0E C3 02 42 4C 00
-85 12 20 00 AC C3 04 42 41 53 45 00 85 12 DC 1D
-C8 C2 05 53 54 41 54 45 85 12 BE 1D 96 C3 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 C3 06 55 4D 2F
-4D 4F 44 00 30 12 62 C2 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C2 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C3
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 C3 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 C4
-02 23 53 00 87 12 32 C4 6A C4 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C4 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C3 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C3
-02 44 2E 00 87 12 D2 C3 44 C2 B0 C2 4C C3 64 C4
-BC C2 A2 C4 7E C4 14 C7 DC C6 2A C2 DC C3 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C2
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C4 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 C2
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A C4
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C4 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C4 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C3 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C5 03 4B 45 59 30 40 A0 C5
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 FC C5 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 0E C6 30 4D 00 C5
-06 41 43 43 45 50 54 00 3C 40 6A C6 3B 40 34 C6
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C6 92 B3 DC 05 05 24 18 42 CC 05 38 90
-0A 00 04 20 21 53 39 40 22 C6 4D 15 A2 B3 DC 05
-FD 27 B2 40 11 00 CE 05 E2 C2 03 02 30 41 B2 40
-13 00 CE 05 E2 D2 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C6 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 CC 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 DC 05 FD 27 82 48 CE 05 30 4D 60 C6
-2D 83 92 B3 DC 05 E4 23 FC 27 82 93 DE 1D 02 24
-92 53 DE 1D 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C4 04 45 4D 49 54 00 30 40 8C C6 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 1D 00 00 AF 4F 02 00 8F 3F 82 C6 04 45 43 48
-4F 00 B2 40 82 48 58 C6 82 43 DE 1D 30 4D E0 C4
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C6 92 43
-DE 1D 30 4D 9C C4 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C6 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C6 EF 3F 00 C7
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C5 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C7 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C7 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C5 02 43
-52 00 30 40 46 C7 87 12 52 C7 02 0D 0A 00 14 C7
-2A C2 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C6 82 53 22 00 82 43 B4 1D
-87 12 34 C2 52 C7 C8 C9 34 C2 22 00 B6 C7 80 C7
-3D 41 B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D
-3E 4F 92 B3 C6 1D A2 63 C6 1D 30 4D C0 C6 82 2E
-22 00 87 12 6C C7 34 C2 14 C7 C8 C9 2A C2 00 00
-04 57 4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C2
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C2
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C2
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C2 02 3E 52 00 0E 12 3E 4F 30 4D 70 C2 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C2 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C2 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C2
+01 21 BE 4F 00 00 3E 4F 30 4D CC C2 02 30 3D 00
+1E 83 0E 7E 30 4D FC C2 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C3 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 C3 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 C3 02 23 53 00 87 12 88 C3 C0 C3
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C3
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C2 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C3 34 C2 86 C2 D4 C2 BA C3
+92 C2 F8 C3 D4 C3 D6 C5 42 C9 82 C5 2A C2 22 C3
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C3 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C4 18 42 CC 05 2F 83 8F 4E
+00 00 B0 12 B6 C4 92 B3 DC 05 FD 27 1E 42 CC 05
+B0 12 C8 C4 30 4D A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C2 03 02 30 41 B2 40 13 00 CE 05 E2 D2
+03 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C4
+B0 12 B6 C4 12 D2 0A 18 F9 3F F0 C2 06 41 43 43
+45 50 54 00 3C 40 64 C5 3B 40 2E C5 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C5
+92 B3 DC 05 05 24 18 42 CC 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 CC 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 DC 05
+FD 27 82 48 CE 05 30 4D 5A C5 2D 83 92 B3 DC 05
+E4 23 FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C2 04 45 4D 49
+54 00 30 40 86 C5 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
+02 00 A8 3F 7C C5 04 45 43 48 4F 00 B2 40 82 48
+52 C5 82 43 DE 1D 30 4D 32 C4 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C5 92 43 DE 1D 30 4D 20 C4
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C5
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C5 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C3
+02 43 52 00 30 40 08 C6 87 12 1E C6 02 0D 0A 00
+D6 C5 2A C2 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C3 82 53 22 00 82 43 B4 1D 87 12 14 C6
+1E C6 B0 C8 14 C6 22 00 80 C6 4C C6 B2 40 20 00
+B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41 3E 4F
+30 4D BA C5 82 2E 22 00 87 12 38 C6 14 C6 D6 C5
+B0 C8 2A C2 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52 C4 1D
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D
 F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E
@@ -104,302 +86,281 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C2 34 40 00 C2 30 4D A2 C3 07 3E
+00 00 35 40 0E C2 34 40 00 C2 30 4D 82 C2 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43
-2D 15 3D 40 10 C9 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 C9 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C3
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C6 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C3 01 2C 1A 42 C6 1D A2 53 C6 1D
-8A 4E 00 00 3E 4F 30 4D C6 C9 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D
-BA 40 34 C2 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C7 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F
-C2 1D 3E 4F 82 43 C4 1D 30 4D 87 12 2A CA B0 C3
-B6 C7 44 CA 3D 40 4C CA E2 22 5D 3E 4E CA 0A 4E
-3E 4F 3D 40 64 CA 39 27 3D 40 3E CA 1A E2 BE 1D
-B3 27 AD 23 66 CA 3E 4F 3D 40 3E CA BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CD
-CD 3F B6 C9 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 1D 3C 49 3B 49 3A 49 3D 15 B0 12 2A C2 3A CA
-A2 CA B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41
-30 4D 6C C3 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 1D 0C 43 2D 15 3D 40 F4 C7 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 C7 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E C3 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E C4 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 C2 01 2C
+1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D
+EC C4 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D
+A6 C5 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE C8 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
+1A 42 C6 1D A2 52 C6 1D BA 40 14 C6 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 C6 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
+30 4D 85 12 20 00 87 12 32 C9 42 C9 80 C6 50 C9
+3D 40 58 C9 CC 22 82 3E 5A C9 0A 4E 3E 4F 3D 40
+70 C9 23 27 3D 40 4A C9 1A E2 BE 1D A1 27 B5 23
+72 C9 3E 4F 3D 40 4A C9 B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 CC CB 3F D2 C8
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D 3C 49
+3B 49 3A 49 3D 15 B0 12 2A C2 46 C9 AE C9 B2 41
+C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D 85 12
+BE 1D 08 C3 04 51 55 49 54 00 82 43 08 18 31 40
 E0 1C B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A C2
-42 C7 92 C6 DC C6 3A CA DE C2 70 C3 52 C7 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CB 34 C2
-30 FF F2 C4 8A C3 52 C7 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CB 24 C5 D0 CA C0 C5 05 41 42 4F
-52 54 3F 40 80 1C D1 3F 0C CB 86 41 42 4F 52 54
-22 00 87 12 6C C7 34 C2 2E CB C8 C9 2A C2 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D2 B0 12
-FC C5 92 C3 DC 05 38 40 AA 0A 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 DC 05 F2 23 87 12
-6A D2 34 C2 DE 1D F2 C2 B2 C6 52 C7 04 1B 5B 37
-6D 00 14 C7 54 C2 28 C5 8A CB 42 C7 52 C7 05 6C
-69 6E 65 3A 14 C7 40 C3 D2 C4 14 C7 52 C7 04 1B
-5B 30 6D 00 14 C7 12 CB 00 00 83 5B 27 5D 87 12
-B0 CB 34 C2 34 C2 C8 C9 C8 C9 2A C2 08 C8 01 27
-87 12 B0 C3 B6 C7 0E C8 28 C5 BE CB 2A C2 6E CA
-CE C3 81 5C 92 42 C0 1D C4 1D 30 4D 9A CB 81 5B
-82 43 BE 1D 30 4D C2 CB 01 5D B2 43 BE 1D 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C5 82 49 53 00 87 12
-C8 C3 F2 C2 28 C5 02 CC 9E CB 34 C2 E0 CB C8 C9
-2A C2 B0 CB E0 CB 2A C2 EA CB 09 49 4D 4D 45 44
+04 C6 8C C5 42 C9 82 C5 46 C9 A4 C2 0C C3 1E C6
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 CA
+14 C6 30 FF A0 C8 26 C3 1E C6 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 CA 3C C4 E0 C9 C2 C8 05 41
+42 4F 52 54 3F 40 80 1C D0 3F 1E CA 86 41 42 4F
+52 54 22 00 87 12 38 C6 14 C6 40 CA B0 C8 2A C2
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 CF
+B0 12 B6 C4 92 C3 DC 05 38 40 AA 0A 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 DC 05 F3 23 87 12
+42 CF 14 C6 DE 1D EA C2 AC C5 1E C6 04 1B 5B 37
+6D 00 D6 C5 58 C2 40 C4 9A CA 04 C6 1E C6 05 6C
+69 6E 65 3A D6 C5 D0 C2 24 C4 D6 C5 1E C6 04 1B
+5B 30 6D 00 D6 C5 24 CA 00 00 83 5B 27 5D 87 12
+C0 CA 14 C6 14 C6 B0 C8 B0 C8 2A C2 E8 C6 01 27
+87 12 42 C9 80 C6 EE C6 40 C4 CE CA 2A C2 7A C9
+32 C3 81 5C 92 42 C0 1D C4 1D 30 4D AA CA 81 5B
+82 43 BE 1D 30 4D D2 CA 01 5D B2 43 BE 1D 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A C8 82 49 53 00 87 12
+BE C9 EA C2 40 C4 12 CB AE CA 14 C6 F0 CA B0 C8
+2A C2 C0 CA F0 CA 2A C2 FA CA 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D
-68 C7 87 52 45 43 55 52 53 45 19 42 C6 1D 99 42
-BA 1D 00 00 A2 53 C6 1D 30 4D B4 CA 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C3 B6 C7 0E C8 54 C2
-28 C5 BE CB 70 C3 28 C5 66 CC 34 C2 34 C2 C8 C9
-C8 C9 34 C2 C8 C9 C8 C9 2A C2 CE CB 81 3B 82 93
-BE 1D A8 27 87 12 34 C2 2A C2 C8 C9 04 CD D0 CB
-2A C2 6C CC 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CC BA 40 87 12 FC FF A2 83 C6 1D B2 43
-BE 1D 82 4F BC 1D 30 4D 84 CC 01 3A 30 12 A4 CC
-87 12 92 C7 B0 C3 B6 C7 CA CC 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CC 02 00
-82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A
-C6 1D 30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42
-B8 1D A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C7
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CB B0 C7 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CC BA 40 86 12 FC FF E4 3F 16 CA 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CC BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CD 06 43 52 45 41 54
-45 00 B0 12 C0 CC BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CA 05 44 4F 45 53 3E 1A 42 BA 1D BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CD 05 44
-45 46 45 52 30 12 12 CD 8B 3F 6E C8 05 3E 42 4F
-44 59 2E 52 30 4D 6A CD 04 43 4F 44 45 00 B0 12
-C0 CC 2A 82 82 4A C6 1D 87 12 B2 CC 94 D0 66 D0
-2A C2 B8 CD 07 43 4F 44 45 4E 4E 4D 87 12 8C CC
-D0 CB C2 CD 2A C2 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D0 04 CD 2A C2 1A CB 03 41 53 4D 92 42
-DA 1D EC 1D B2 40 6A D0 DA 1D D9 3F E8 CD 06 45
-4E 44 41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00
-A2 53 C6 1D B2 43 BE 1D 30 40 AE D0 00 00 05 4C
-4F 32 48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40
-2A C2 02 00 A2 52 C6 1D ED 3F 0A CC 85 48 49 32
-4C 4F 87 12 F2 C4 8C CE C8 C9 D0 CB 94 D0 66 D0
-2A C2 5C CE 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 1D A2 52 C6 1D BE 40 28 C5 00 00 2E 53 30 4D
-9E CD 84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D
-BA 40 24 C5 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C7 84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F
-30 4D D4 CD 85 42 45 47 49 4E 30 40 F2 C4 B2 CE
-85 55 4E 54 49 4C 39 40 28 C5 A2 52 C6 1D 1A 42
-C6 1D 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CD
-85 41 47 41 49 4E 39 40 24 C5 EF 3F 34 CD 85 57
-48 49 4C 45 87 12 78 CE 78 C2 2A C2 22 CC 86 52
-45 50 45 41 54 00 87 12 F6 CE B8 CE 2A C2 92 CE
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42
-C6 1D BE 40 3C C5 FE FF A2 53 00 1C 1A 42 00 1C
-8A 43 00 00 30 4D DA C9 84 4C 4F 4F 50 00 39 40
-5E C5 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C5 85 2B 4C 4F
-4F 50 39 40 4C C5 E5 3F 48 CF 85 4C 45 41 56 45
-1A 42 C6 1D BA 40 6E C5 00 00 BA 40 24 C5 02 00
-B2 50 06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C
-89 4A 00 00 30 4D 8A CF 04 4D 4F 56 45 00 0A 4E
+C4 C9 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 C9
+80 C6 EE C6 58 C2 40 C4 CE CA 0C C3 40 C4 5C CB
+14 C6 14 C6 B0 C8 B0 C8 14 C6 B0 C8 B0 C8 2A C2
+DE CA 81 3B 82 93 BE 1D B5 27 87 12 14 C6 2A C2
+B0 C8 FA CB E0 CA 2A C2 62 CB 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 CB 2F 83 8F 4E 00 00 1E 42 C6 1D
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 30 4D
+7A CB 01 3A 30 12 A0 CB 92 B3 C6 1D A2 63 C6 1D
+87 12 42 C9 80 C6 C8 CB 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F
+BC 1D 2A 52 82 4A C6 1D 30 41 82 9F BC 1D 09 20
+18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E C6 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C CA 90 C9 05 44 45 46 45 52
+B0 12 B8 CB BA 40 30 40 FC FF BA 40 AE CB FE FF
+E3 3F 1E C9 06 43 52 45 41 54 45 00 B0 12 B8 CB
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A CC 05 44
+4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E C7 05 3E 42 4F 44 59 2E 52
+30 4D 44 CC 04 43 4F 44 45 00 B0 12 B8 CB A2 82
+C6 1D 87 12 D2 CE AC CE 2A C2 84 CC 07 43 4F 44
+45 4E 4E 4D B0 12 86 CB F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 CE FA CB 2A C2 2C CA 03 41
+53 4D B2 40 B0 CE DA 1D E0 3F AC CC 06 45 4E 44
+41 53 4D 00 87 12 B4 CC F4 CE 2A C2 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53
+C6 1D B2 43 BE 1D 30 40 E0 CE 00 00 05 4C 4F 32
+48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A C2
+02 00 A2 52 C6 1D ED 3F 1A CB 85 48 49 32 4C 4F
+87 12 A0 C8 4A CD B0 C8 E0 CA D2 CE AC CE 2A C2
+1A CD 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
+A2 52 C6 1D BE 40 40 C4 00 00 2E 53 30 4D 5E CC
+84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40
+3C C4 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 C5
+84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D
+9C CC 85 42 45 47 49 4E 30 40 A0 C8 70 CD 85 55
+4E 54 49 4C 39 40 40 C4 A2 52 C6 1D 1A 42 C6 1D
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE CC 85 41
+47 41 49 4E 39 40 3C C4 EF 3F 7A C6 85 57 48 49
+4C 45 87 12 36 CD 76 C2 2A C2 34 C6 86 52 45 50
+45 41 54 00 87 12 B4 CD 76 CD 2A C2 50 CD 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D
+BE 40 54 C4 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
+00 00 30 4D E2 C8 84 4C 4F 4F 50 00 39 40 76 C4
+A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
+1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 C4 85 2B 4C 4F 4F 50
+39 40 64 C4 E5 3F 06 CE 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE CE
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CD
-34 C2 10 00 34 C2 00 00 3C C5 34 C2 00 00 C8 C9
-5E C5 0A D0 F2 C4 34 C2 C8 1D 44 C2 F2 C2 C8 C9
-FA C2 8A CD 34 C2 CA 1D FA C2 2A C2 AE CB 05 46
-4F 52 54 48 84 12 24 D0 8E D0 C2 D3 CC D0 2E D0
-74 CE 7C CF F8 D1 BE D0 8E D2 A8 D2 D0 CE 34 D3
-00 00 CC D1 D8 CB AC CD 00 00 F0 CE 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D0 C4 D9 2C DA 78 D9
-96 DA 3E D9 BA DA 6A D6 00 00 34 D9 E4 D9 96 D9
-D4 D9 7A D7 00 00 00 00 C8 DA 58 D0 5C D0 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D
-9D 3F 3C CC 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 1D 38 40 CA 1D 8A 3F 9E C7 04 4F
-4E 4C 59 00 82 43 CC 1D 30 4D 20 CF 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D
-C4 CE 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 C6
+CA 1D F2 C2 2A C2 84 12 7E CE AE CD 52 D1 DE CD
+BE CA 32 CD 3A CE 66 D2 64 C6 66 CF 80 CF 8E CD
+00 D0 00 00 38 D2 E8 CA 78 CC 00 00 84 12 7E CE
+84 D7 E6 D7 38 D7 5A D8 FE D6 00 00 2E D4 00 00
+F4 D6 A4 D7 56 D7 94 D7 3E D5 00 00 00 00 36 D8
+AA CE 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D C6 3F
+3A 40 0E 00 39 40 CC 1D 38 40 CA 1D B9 3F 82 43
+CC 1D 30 4D 92 42 CA 1D DA 1D 30 4D 86 CE EE CE
+F4 CE 04 CF 3A 4E 82 4A C8 1D 2E 4E 82 4E C6 1D
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 CB 09 50 57 52 5F 53 54 41
+54 45 84 12 FC CE D0 CE 6C D8 CC CD 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 CF 92 42 0C 18
+48 CF EF 3F 38 CF 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 1D 46 CF 92 42 C6 1D 48 CF 30 4D 4C CF
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 1D 0E 18
+92 42 C6 1D 0C 18 EC 3F BC CD 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 C4
+DE C4 B2 40 0A D0 08 D0 B2 40 D0 CE 0E 18 B2 40
+6C D8 0C 18 30 12 56 CF B2 40 86 C5 84 C5 B2 40
+08 C6 06 C6 B2 40 98 C4 96 C4 B2 40 18 00 0A 18
+37 40 1A C2 36 40 92 C2 35 40 0E C2 34 40 00 C2
+B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41 9A CF
+04 57 41 52 4D 00 30 40 0A D0 3D 40 3E D0 92 C3
+30 01 1E 42 08 18 0E 93 11 24 D2 B3 01 02 02 20
+3E E3 1E 53 F2 D0 03 00 0D 02 3E 90 0A 00 B8 27
+3E 90 16 00 B5 2F 2E 93 84 27 8D 2F 30 4D 1E C6
+06 0D 1B 5B 37 6D 23 00 D6 C5 34 C4 1E C6 19 46
+61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54
+68 6F 6F 72 65 6E 73 20 D6 C5 14 C6 30 FF A0 C8
+B8 C2 24 C4 1E C6 0A 62 79 74 65 73 20 66 72 65
+65 00 3C C4 9A CA 82 CD 04 43 4F 4C 44 00 92 B3
+CA 05 FD 23 B2 40 04 A5 20 01 3E D0 92 D3 30 01
+B2 40 88 5A 5C 01 B2 43 06 02 B2 40 EF 7F 02 02
+E2 D2 05 02 B2 43 26 02 B2 D0 08 FF 22 02 F2 D3
+26 03 F2 40 F0 00 22 03 F2 40 A5 00 61 01 B2 40
+33 00 66 01 39 40 10 00 B2 40 33 00 64 01 D2 43
+61 01 92 D2 9E 01 08 18 38 40 59 14 18 83 FE 23
+19 83 FA 23 B2 D2 B0 01 92 C3 B0 01 F2 D0 10 00
+2A 03 F2 C0 40 00 A1 04 39 40 00 04 29 83 89 43
+00 1C FC 23 39 40 32 00 29 83 B9 40 9C D0 CE FF
+FB 23 B2 40 26 C5 F0 FF B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 92 C3 C0 05 92 D3
+DA 05 3F 40 80 1C 31 40 E0 1C 30 12 06 D0 45 3F
+88 D0 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
 19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CC 86 5B 54 48 45 4E 5D 00 30 4D 14 D1
-86 5B 45 4C 53 45 5D 00 87 12 34 C2 00 00 36 C3
-B0 C3 B6 C7 1C CA 44 C2 28 C5 8E D1 8A C2 8A C2
-52 C7 06 5B 54 48 45 4E 5D 00 EA D0 32 C5 5C D1
-36 C7 40 C3 54 C2 32 C5 30 D1 2A C2 8A C2 8A C2
-52 C7 06 5B 45 4C 53 45 5D 00 EA D0 32 C5 7C D1
-36 C7 40 C3 54 C2 32 C5 2E D1 2A C2 52 C7 04 5B
-49 46 5D 00 EA D0 32 C5 30 D1 24 C5 2E D1 36 C7
-52 C7 05 0D 0A 6B 6F 20 14 C7 92 C6 2A CA 24 C5
-30 D1 20 D1 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D1 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C3 B6 C7 0E C8 6C C2 2A C2 B4 D1 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C3 B6 C7 0E C8
-6C C2 64 C3 2A C2 E8 D1 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 CF 06 4D 41 52 4B 45 52 00
-B0 12 C0 CC BA 40 84 12 FC FF BA 40 E6 D1 FE FF
-9A 42 C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D
-30 40 0A CD 34 D0 C4 D0 D8 D0 2C D2 3A 4E 82 4A
-C8 1D 2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D0
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D2 8A D0
-DA DA 0E CF 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D2 92 42 0C 18 70 D2 EF 3F 60 D2 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 1D 6E D2 92 42
-C6 1D 70 D2 30 4D 74 D2 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F
-F0 CF 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C6 24 C6 B2 40 3E D3 3C D3
-B2 40 8A D0 0E 18 B2 40 DA DA 0C 18 30 12 7E D2
-B2 40 8C C6 8A C6 B2 40 46 C7 44 C7 B2 40 A0 C5
-9E C5 B2 40 18 00 0A 18 37 40 1A C2 36 40 BC C2
-35 40 0E C2 34 40 00 C2 39 40 10 00 29 83 89 43
-E0 1D FC 23 B2 40 0A 00 DC 1D B2 40 20 00 B4 1D
-30 41 C2 D2 04 57 41 52 4D 00 30 40 3E D3 3D 40
-72 D3 92 C3 30 01 1E 42 08 18 0E 93 11 24 D2 B3
-01 02 02 20 3E E3 1E 53 F2 D0 03 00 0D 02 3E 90
-0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27 87 2F
-30 4D 52 C7 06 0D 1B 5B 37 6D 23 00 14 C7 E2 C4
-52 C7 1F 46 61 73 74 46 6F 72 74 68 20 56 33 30
-30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
-73 20 14 C7 34 C2 80 FF F2 C4 28 C3 D2 C4 52 C7
-0B 62 79 74 65 73 20 66 72 65 65 20 24 C5 8A CB
-E2 D0 04 43 4F 4C 44 00 92 B3 CA 05 FD 23 B2 40
-04 A5 20 01 92 D3 30 01 B2 40 88 5A 5C 01 B2 40
-EF 7F 06 02 B2 43 02 02 E2 D2 05 02 B2 40 08 FF
-02 02 B2 D0 08 FF 06 02 B2 D0 F0 00 04 02 F2 40
-F0 00 22 03 F2 D0 F0 00 26 03 F2 D0 0F 00 24 03
-F2 40 A5 00 61 01 B2 40 33 00 66 01 39 40 10 00
-B2 40 33 00 64 01 D2 43 61 01 92 D2 9E 01 08 18
-38 40 59 14 18 83 FE 23 19 83 FA 23 B2 D2 B0 01
-92 C3 B0 01 F2 D0 10 00 2A 03 F2 C0 40 00 A1 04
-39 40 00 04 29 83 89 43 00 1C FC 23 39 40 32 00
-29 83 B9 40 D4 D3 CE FF FB 23 B2 40 2C C6 F0 FF
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 92 C3 C0 05 92 D3 DA 05 3F 40 80 1C 31 40
-E0 1C 30 12 3A D3 35 3F 38 40 C0 1D 39 48 2A 48
-09 5A 1A 52 C4 1D 09 9A 03 24 7E 9A FC 27 1A 83
-0E 4A 2A 88 82 4A C4 1D 30 4D 1C 15 B0 12 2A C2
-B6 C7 0E C8 32 C5 D0 D4 CA C8 28 C5 BE CB F2 D4
-D2 D4 29 4E 39 90 86 12 02 20 2E 53 0A 3C 39 90
-85 12 03 20 1E 4E 02 00 04 3C 39 90 84 12 01 20
-2E 52 1B 17 30 41 3E 40 28 00 B0 12 BA D4 19 42
+30 4D B2 CB 86 5B 54 48 45 4E 5D 00 30 4D 84 D1
+86 5B 45 4C 53 45 5D 00 87 12 14 C6 00 00 C6 C2
+42 C9 80 C6 24 C9 34 C2 40 C4 FA D1 44 C2 1E C6
+06 5B 54 48 45 4E 5D 00 5A D1 4A C4 CA D1 F8 C5
+D0 C2 58 C2 4A C4 A0 D1 2A C2 44 C2 1E C6 06 5B
+45 4C 53 45 5D 00 5A D1 4A C4 E8 D1 F8 C5 D0 C2
+58 C2 4A C4 9E D1 2A C2 1E C6 04 5B 49 46 5D 00
+5A D1 4A C4 A0 D1 3C C4 9E D1 F8 C5 1E C6 05 0D
+0A 6B 6F 20 D6 C5 8C C5 32 C9 3C C4 A0 D1 90 D1
+84 5B 49 46 5D 00 0E 93 3E 4F BE 27 30 4D 10 D2
+89 5B 44 45 46 49 4E 45 44 5D 87 12 42 C9 80 C6
+EE C6 6A C2 2A C2 20 D2 8B 5B 55 4E 44 45 46 49
+4E 45 44 5D 87 12 42 C9 80 C6 EE C6 6A C2 00 C3
+2A C2 54 D2 3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F
+30 40 56 CF 48 CE 06 4D 41 52 4B 45 52 00 B0 12
+B8 CB BA 40 84 12 FC FF BA 40 52 D2 FE FF 9A 42
+C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40
+00 CC 1C 15 B0 12 2A C2 80 C6 EE C6 4A C4 A8 D2
+AA C7 40 C4 CE CA C2 D2 AA D2 39 4E 39 80 86 12
+08 24 19 53 02 20 2E 4E 04 3C 2E 53 19 53 01 24
+2E 82 1B 17 30 41 3E 40 28 00 B0 12 92 D2 19 42
 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40 29 00 1C 15
-12 12 C4 1D 92 53 C4 1D B0 12 2A C2 B6 C7 CA C8
-28 C5 30 D5 26 D5 21 53 3E 90 10 00 83 2D E1 2B
-32 D5 B2 41 C4 1D DD 3F 87 12 B0 C3 98 D4 40 D5
+12 12 C4 1D 92 53 C4 1D B0 12 2A C2 80 C6 AA C7
+40 C4 00 D3 F6 D2 21 53 3E 90 10 00 7D 2D E1 2B
+02 D3 B2 41 C4 1D DD 3F 87 12 42 C9 74 C6 10 D3
 0C 43 1B 42 C6 1D A2 53 C6 1D 6A 4E 3E 4F 7A 90
-23 00 2D 20 92 53 C4 1D B0 12 BA D4 0E 93 03 20
-3C 40 00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C
-2E 93 03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40
-20 02 12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93
-03 20 3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 1D
-A2 53 C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90
-26 00 07 20 3C 40 10 02 92 53 C4 1D B0 12 BA D4
-ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D
-B0 12 0E D5 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-0E D5 92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10
-0C 5E DA 3F B0 12 0E D5 FA 23 3C 50 10 00 B0 12
-F6 D4 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 87 12
-B0 C3 98 D4 16 D6 FE 90 26 00 00 00 3E 40 20 00
-03 20 3C 50 82 00 C8 3F B0 12 0E D5 E1 23 3C 50
-80 00 B0 12 F6 D4 DC 3F 1C C6 04 52 45 54 49 00
-87 12 34 C2 00 13 C8 C9 2A C2 34 C2 2C 00 38 D5
-0E D6 54 D6 2E 4E 0E DC 09 4B A4 3F 3E CE 03 4D
-4F 56 84 12 4A D6 00 40 5E D6 05 4D 4F 56 2E 42
-84 12 4A D6 40 40 00 00 03 41 44 44 84 12 4A D6
-00 50 78 D6 05 41 44 44 2E 42 84 12 4A D6 40 50
-84 D6 04 41 44 44 43 00 84 12 4A D6 00 60 92 D6
-06 41 44 44 43 2E 42 00 84 12 4A D6 40 60 3A D6
-04 53 55 42 43 00 84 12 4A D6 00 70 B0 D6 06 53
-55 42 43 2E 42 00 84 12 4A D6 40 70 BE D6 03 53
-55 42 84 12 4A D6 00 80 CE D6 05 53 55 42 2E 42
-84 12 4A D6 40 80 20 CE 03 43 4D 50 84 12 4A D6
-00 90 E8 D6 05 43 4D 50 2E 42 84 12 4A D6 40 90
-0E CE 04 44 41 44 44 00 84 12 4A D6 00 A0 02 D7
-06 44 41 44 44 2E 42 00 84 12 4A D6 40 A0 F4 D6
-03 42 49 54 84 12 4A D6 00 B0 20 D7 05 42 49 54
-2E 42 84 12 4A D6 40 B0 2C D7 03 42 49 43 84 12
-4A D6 00 C0 3A D7 05 42 49 43 2E 42 84 12 4A D6
-40 C0 46 D7 03 42 49 53 84 12 4A D6 00 D0 54 D7
-05 42 49 53 2E 42 84 12 4A D6 40 D0 00 00 03 58
-4F 52 84 12 4A D6 00 E0 6E D7 05 58 4F 52 2E 42
-84 12 4A D6 40 E0 A0 D6 03 41 4E 44 84 12 4A D6
-00 F0 88 D7 05 41 4E 44 2E 42 84 12 4A D6 40 F0
-B0 C3 38 D5 A6 D7 0A 4C 3C F0 70 00 8A 10 3A F0
-0F 00 0C DA 4F 3F DA D6 03 52 52 43 84 12 A0 D7
-00 10 B8 D7 05 52 52 43 2E 42 84 12 A0 D7 40 10
-C4 D7 04 53 57 50 42 00 84 12 A0 D7 80 10 D2 D7
-03 52 52 41 84 12 A0 D7 00 11 E0 D7 05 52 52 41
-2E 42 84 12 A0 D7 40 11 EC D7 03 53 58 54 84 12
-A0 D7 80 11 00 00 04 50 55 53 48 00 84 12 A0 D7
-00 12 06 D8 06 50 55 53 48 2E 42 00 84 12 A0 D7
-40 12 60 D7 04 43 41 4C 4C 00 84 12 A0 D7 80 12
-1A 53 0E 4A 87 12 E2 C4 52 C7 0D 6F 75 74 20 6F
-66 20 62 6F 75 6E 64 73 3A CB B0 C3 98 D4 50 D8
-92 53 C4 1D 3E 40 2C 00 B0 12 2A C2 B6 C7 CA C8
-28 C5 BE CB 04 D6 68 D8 0A 4E 3E 4F 1A 83 E0 33
-29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
-38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10
-5A 06 8F 3F FA D7 04 52 52 43 4D 00 84 12 4A D8
-50 00 96 D8 04 52 52 41 4D 00 84 12 4A D8 50 01
-A4 D8 04 52 4C 41 4D 00 84 12 4A D8 50 02 B2 D8
-04 52 52 55 4D 00 84 12 4A D8 50 03 14 D8 05 50
-55 53 48 4D 84 12 4A D8 00 15 CE D8 04 50 4F 50
-4D 00 84 12 4A D8 00 17 85 12 00 3C C0 D8 03 53
-3E 3D 85 12 00 38 EE D8 02 53 3C 00 85 12 00 34
-DC D8 03 30 3E 3D 85 12 00 30 02 D9 02 30 3C 00
-85 12 00 30 00 00 02 55 3C 00 85 12 00 2C 16 D9
-03 55 3E 3D 85 12 00 28 0C D9 03 30 3C 3E 85 12
-00 24 2A D9 02 30 3D 00 85 12 00 20 00 00 02 49
+23 00 27 20 92 53 C4 1D B0 12 92 D2 3C 40 00 03
+0E 93 1C 24 3C 40 10 03 1E 93 18 24 3C 40 20 03
+2E 93 14 24 3C 40 20 02 2E 92 10 24 3C 40 30 02
+3E 92 0C 24 3C 40 30 03 3E 93 08 24 3C 40 30 00
+19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 4F 3D 41
+30 4D 7A 90 26 00 07 20 3C 40 10 02 92 53 C4 1D
+B0 12 92 D2 ED 3F 7A 90 40 00 16 20 3C 40 20 00
+92 53 C4 1D B0 12 DE D2 0C 20 3C 50 10 00 3E 40
+2B 00 B0 12 DE D2 92 92 C0 1D C4 1D 02 24 92 53
+C4 1D 8E 10 0C 5E DA 3F B0 12 DE D2 FA 23 3C 50
+10 00 B0 12 C6 D2 EF 3F 0C 43 1B 42 C6 1D A2 53
+C6 1D 87 12 42 C9 74 C6 DA D3 FE 90 26 00 00 00
+3E 40 20 00 03 20 3C 50 82 00 C8 3F B0 12 DE D2
+E1 23 3C 50 80 00 B0 12 C6 D2 DC 3F D6 C4 04 52
+45 54 49 00 87 12 14 C6 00 13 B0 C8 2A C2 14 C6
+2C 00 08 D3 D2 D3 18 D4 09 4B 2E 4E 0E DC A4 3F
+FC CC 03 4D 4F 56 84 12 0E D4 00 40 22 D4 05 4D
+4F 56 2E 42 84 12 0E D4 40 40 00 00 03 41 44 44
+84 12 0E D4 00 50 3C D4 05 41 44 44 2E 42 84 12
+0E D4 40 50 48 D4 04 41 44 44 43 00 84 12 0E D4
+00 60 56 D4 06 41 44 44 43 2E 42 00 84 12 0E D4
+40 60 FE D3 04 53 55 42 43 00 84 12 0E D4 00 70
+74 D4 06 53 55 42 43 2E 42 00 84 12 0E D4 40 70
+82 D4 03 53 55 42 84 12 0E D4 00 80 92 D4 05 53
+55 42 2E 42 84 12 0E D4 40 80 DE CC 03 43 4D 50
+84 12 0E D4 00 90 AC D4 05 43 4D 50 2E 42 84 12
+0E D4 40 90 CC CC 04 44 41 44 44 00 84 12 0E D4
+00 A0 C6 D4 06 44 41 44 44 2E 42 00 84 12 0E D4
+40 A0 B8 D4 03 42 49 54 84 12 0E D4 00 B0 E4 D4
+05 42 49 54 2E 42 84 12 0E D4 40 B0 F0 D4 03 42
+49 43 84 12 0E D4 00 C0 FE D4 05 42 49 43 2E 42
+84 12 0E D4 40 C0 0A D5 03 42 49 53 84 12 0E D4
+00 D0 18 D5 05 42 49 53 2E 42 84 12 0E D4 40 D0
+00 00 03 58 4F 52 84 12 0E D4 00 E0 32 D5 05 58
+4F 52 2E 42 84 12 0E D4 40 E0 64 D4 03 41 4E 44
+84 12 0E D4 00 F0 4C D5 05 41 4E 44 2E 42 84 12
+0E D4 40 F0 42 C9 08 D3 6A D5 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4F 3F 9E D4 03 52 52 43
+84 12 64 D5 00 10 7C D5 05 52 52 43 2E 42 84 12
+64 D5 40 10 88 D5 04 53 57 50 42 00 84 12 64 D5
+80 10 96 D5 03 52 52 41 84 12 64 D5 00 11 A4 D5
+05 52 52 41 2E 42 84 12 64 D5 40 11 B0 D5 03 53
+58 54 84 12 64 D5 80 11 00 00 04 50 55 53 48 00
+84 12 64 D5 00 12 CA D5 06 50 55 53 48 2E 42 00
+84 12 64 D5 40 12 24 D5 04 43 41 4C 4C 00 84 12
+64 D5 80 12 1A 53 0E 4A 87 12 34 C4 1E C6 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 4C CA 42 C9
+74 C6 14 D6 92 53 C4 1D 3E 40 2C 00 B0 12 2A C2
+80 C6 AA C7 40 C4 CE CA C8 D3 2C D6 0A 4E 3E 4F
+1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
+0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92
+D1 2F 8A 10 5A 06 8F 3F BE D5 04 52 52 43 4D 00
+84 12 0E D6 50 00 5A D6 04 52 52 41 4D 00 84 12
+0E D6 50 01 68 D6 04 52 4C 41 4D 00 84 12 0E D6
+50 02 76 D6 04 52 52 55 4D 00 84 12 0E D6 50 03
+D8 D5 05 50 55 53 48 4D 84 12 0E D6 00 15 92 D6
+04 50 4F 50 4D 00 84 12 0E D6 00 17 84 D6 03 53
+3E 3D 85 12 00 38 AE D6 02 53 3C 00 85 12 00 34
+A0 D6 03 30 3E 3D 85 12 00 30 C2 D6 02 30 3C 00
+85 12 00 30 00 00 02 55 3C 00 85 12 00 2C D6 D6
+03 55 3E 3D 85 12 00 28 CC D6 03 30 3C 3E 85 12
+00 24 EA D6 02 30 3D 00 85 12 00 20 00 00 02 49
 46 00 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 0E 4A
-30 4D 20 D9 04 54 48 45 4E 00 1A 42 C6 1D 08 4E
-3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 61 2F
-88 DA 00 00 30 4D 10 D7 04 45 4C 53 45 00 1A 42
+30 4D E0 D6 04 54 48 45 4E 00 1A 42 C6 1D 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 63 2F
+88 DA 00 00 30 4D D4 D4 04 45 4C 53 45 00 1A 42
 C6 1D BA 40 00 3C 00 00 A2 53 C6 1D 2F 83 8F 4A
-00 00 E3 3F 54 D9 05 55 4E 54 49 4C 3A 4F 08 4E
+00 00 E3 3F 14 D7 05 55 4E 54 49 4C 3A 4F 08 4E
 3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11 3A 90 00 FE
-40 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D
-30 4D 94 D7 05 41 47 41 49 4E 87 12 E8 D8 9C D9
-2A C2 00 00 05 57 48 49 4C 45 87 12 42 D9 78 C2
-2A C2 F8 D8 06 52 45 50 45 41 54 00 87 12 E8 D8
-9C D9 5A D9 2A C2 F8 D9 3D 41 2E 4E 08 4E 3E 4F
-2A 48 0A 93 88 43 00 00 CA 23 98 42 C6 1D 00 00
-30 4D 24 D8 03 42 57 31 84 12 F6 D9 E0 1D 14 DA
-03 42 57 32 84 12 F6 D9 E2 1D 20 DA 03 42 57 33
-84 12 F6 D9 E4 1D 38 DA 3D 41 1A 42 C6 1D 2E 4E
-28 4E 08 93 8E 43 00 00 8B 23 BA 4F 00 00 A2 53
-C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-84 12 36 DA E6 1D 5C DA 03 46 57 32 84 12 36 DA
-E8 1D 68 DA 03 46 57 33 84 12 36 DA EA 1D 3E 90
-00 30 07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0
-00 08 30 4D 74 DA 04 47 4F 54 4F 00 87 12 E8 D8
-B0 CB BE C9 2A C2 00 00 05 3F 47 4F 54 4F 87 12
-7E DA B0 CB BE C9 2A C2 00 00 03 4A 4D 50 87 12
-B0 CB CA D9 2A C2 A8 DA 04 3F 4A 4D 50 00 87 12
-7E DA B0 CB 78 C2 9C D9 2A C2
+42 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D
+30 4D 58 D5 05 41 47 41 49 4E 0A 4E 38 40 00 3C
+E7 3F 00 00 05 57 48 49 4C 45 87 12 02 D7 76 C2
+2A C2 B8 D6 06 52 45 50 45 41 54 00 87 12 8A D7
+1A D7 2A C2 B6 D7 3D 41 08 4E 3E 4F 2A 48 B2 92
+C4 1D CD 2F 98 42 C6 1D 00 00 30 4D E8 D5 03 42
+57 31 84 12 B4 D7 00 00 CE D7 03 42 57 32 84 12
+B4 D7 00 00 DA D7 03 42 57 33 84 12 B4 D7 00 00
+F2 D7 3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D 90 2B
+BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D
+00 00 03 46 57 31 84 12 F0 D7 00 00 12 D8 03 46
+57 32 84 12 F0 D7 00 00 1E D8 03 46 57 33 84 12
+F0 D7 00 00 00 00 05 3F 47 4F 54 4F 3E 90 00 30
+07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0 00 08
+87 12 C0 CA DA C8 2A C2 2A D8 04 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
 @FFFE
-D4 D3
+9C D0
 q
index 76c34d8..12312a4 100644 (file)
 @1800
-10 00 0D 00 01 49 C0 5D 05 00 18 00 DE DA 8A D0
-2C 01 7B B0 FC C5 0E C6
+10 00 0D 00 01 49 C0 5D 05 00 18 00 70 D8 D0 CE
+2D 01 6B B0 B6 C4 C8 C4
 @C200
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C2
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C2 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C2 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C2 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C2 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C2 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C2 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C2 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C2 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C3 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C2 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C3 02 31 2D 00
-1E 83 30 4D D8 C2 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C3
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C3 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C3 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C2 01 3E 3E 8F F4 3B EB 37 0E C3 02 42 4C 00
-85 12 20 00 AC C3 04 42 41 53 45 00 85 12 DC 1D
-C8 C2 05 53 54 41 54 45 85 12 BE 1D 96 C3 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 C3 06 55 4D 2F
-4D 4F 44 00 30 12 62 C2 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C2 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C3
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 C3 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 C4
-02 23 53 00 87 12 32 C4 6A C4 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C4 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C3 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C3
-02 44 2E 00 87 12 D2 C3 44 C2 B0 C2 4C C3 64 C4
-BC C2 A2 C4 7E C4 14 C7 DC C6 2A C2 DC C3 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C2
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C4 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 C2
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A C4
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C4 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C4 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C3 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C5 03 4B 45 59 30 40 A0 C5
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 FC C5 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 0E C6 30 4D 00 C5
-06 41 43 43 45 50 54 00 3C 40 6A C6 3B 40 34 C6
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C6 92 B3 DC 05 05 24 18 42 CC 05 38 90
-0A 00 04 20 21 53 39 40 22 C6 4D 15 A2 B3 DC 05
-FD 27 B2 40 11 00 CE 05 E2 C2 03 02 30 41 B2 40
-13 00 CE 05 E2 D2 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C6 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 CC 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 DC 05 FD 27 82 48 CE 05 30 4D 60 C6
-2D 83 92 B3 DC 05 E4 23 FC 27 82 93 DE 1D 02 24
-92 53 DE 1D 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C4 04 45 4D 49 54 00 30 40 8C C6 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 1D 00 00 AF 4F 02 00 8F 3F 82 C6 04 45 43 48
-4F 00 B2 40 82 48 58 C6 82 43 DE 1D 30 4D E0 C4
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C6 92 43
-DE 1D 30 4D 9C C4 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C6 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C6 EF 3F 00 C7
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C5 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C7 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C7 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C5 02 43
-52 00 30 40 46 C7 87 12 52 C7 02 0D 0A 00 14 C7
-2A C2 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C6 82 53 22 00 82 43 B4 1D
-87 12 34 C2 52 C7 C8 C9 34 C2 22 00 B6 C7 80 C7
-3D 41 B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D
-3E 4F 92 B3 C6 1D A2 63 C6 1D 30 4D C0 C6 82 2E
-22 00 87 12 6C C7 34 C2 14 C7 C8 C9 2A C2 00 00
-04 57 4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C2
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C2
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C2
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C2 02 3E 52 00 0E 12 3E 4F 30 4D 70 C2 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C2 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C2 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C2
+01 21 BE 4F 00 00 3E 4F 30 4D CC C2 02 30 3D 00
+1E 83 0E 7E 30 4D FC C2 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C3 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 C3 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 C3 02 23 53 00 87 12 88 C3 C0 C3
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C3
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C2 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C3 34 C2 86 C2 D4 C2 BA C3
+92 C2 F8 C3 D4 C3 D6 C5 42 C9 82 C5 2A C2 22 C3
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C3 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C4 18 42 CC 05 2F 83 8F 4E
+00 00 B0 12 B6 C4 92 B3 DC 05 FD 27 1E 42 CC 05
+B0 12 C8 C4 30 4D A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C2 03 02 30 41 B2 40 13 00 CE 05 E2 D2
+03 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C4
+B0 12 B6 C4 12 D2 0A 18 F9 3F F0 C2 06 41 43 43
+45 50 54 00 3C 40 64 C5 3B 40 2E C5 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C5
+92 B3 DC 05 05 24 18 42 CC 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 CC 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 DC 05
+FD 27 82 48 CE 05 30 4D 5A C5 2D 83 92 B3 DC 05
+E4 23 FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C2 04 45 4D 49
+54 00 30 40 86 C5 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
+02 00 A8 3F 7C C5 04 45 43 48 4F 00 B2 40 82 48
+52 C5 82 43 DE 1D 30 4D 32 C4 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C5 92 43 DE 1D 30 4D 20 C4
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C5
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C5 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C3
+02 43 52 00 30 40 08 C6 87 12 1E C6 02 0D 0A 00
+D6 C5 2A C2 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C3 82 53 22 00 82 43 B4 1D 87 12 14 C6
+1E C6 B0 C8 14 C6 22 00 80 C6 4C C6 B2 40 20 00
+B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41 3E 4F
+30 4D BA C5 82 2E 22 00 87 12 38 C6 14 C6 D6 C5
+B0 C8 2A C2 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52 C4 1D
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D
 F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E
@@ -104,302 +86,281 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C2 34 40 00 C2 30 4D A2 C3 07 3E
+00 00 35 40 0E C2 34 40 00 C2 30 4D 82 C2 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43
-2D 15 3D 40 10 C9 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 C9 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C3
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C6 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C3 01 2C 1A 42 C6 1D A2 53 C6 1D
-8A 4E 00 00 3E 4F 30 4D C6 C9 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D
-BA 40 34 C2 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C7 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F
-C2 1D 3E 4F 82 43 C4 1D 30 4D 87 12 2A CA B0 C3
-B6 C7 44 CA 3D 40 4C CA E2 22 5D 3E 4E CA 0A 4E
-3E 4F 3D 40 64 CA 39 27 3D 40 3E CA 1A E2 BE 1D
-B3 27 AD 23 66 CA 3E 4F 3D 40 3E CA BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CD
-CD 3F B6 C9 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 1D 3C 49 3B 49 3A 49 3D 15 B0 12 2A C2 3A CA
-A2 CA B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41
-30 4D 6C C3 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 1D 0C 43 2D 15 3D 40 F4 C7 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 C7 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E C3 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E C4 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 C2 01 2C
+1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D
+EC C4 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D
+A6 C5 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE C8 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
+1A 42 C6 1D A2 52 C6 1D BA 40 14 C6 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 C6 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
+30 4D 85 12 20 00 87 12 32 C9 42 C9 80 C6 50 C9
+3D 40 58 C9 CC 22 82 3E 5A C9 0A 4E 3E 4F 3D 40
+70 C9 23 27 3D 40 4A C9 1A E2 BE 1D A1 27 B5 23
+72 C9 3E 4F 3D 40 4A C9 B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 CC CB 3F D2 C8
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D 3C 49
+3B 49 3A 49 3D 15 B0 12 2A C2 46 C9 AE C9 B2 41
+C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D 85 12
+BE 1D 08 C3 04 51 55 49 54 00 82 43 08 18 31 40
 E0 1C B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A C2
-42 C7 92 C6 DC C6 3A CA DE C2 70 C3 52 C7 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CB 34 C2
-30 FF F2 C4 8A C3 52 C7 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CB 24 C5 D0 CA C0 C5 05 41 42 4F
-52 54 3F 40 80 1C D1 3F 0C CB 86 41 42 4F 52 54
-22 00 87 12 6C C7 34 C2 2E CB C8 C9 2A C2 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D2 B0 12
-FC C5 92 C3 DC 05 38 40 F0 FF 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 DC 05 F2 23 87 12
-6A D2 34 C2 DE 1D F2 C2 B2 C6 52 C7 04 1B 5B 37
-6D 00 14 C7 54 C2 28 C5 8A CB 42 C7 52 C7 05 6C
-69 6E 65 3A 14 C7 40 C3 D2 C4 14 C7 52 C7 04 1B
-5B 30 6D 00 14 C7 12 CB 00 00 83 5B 27 5D 87 12
-B0 CB 34 C2 34 C2 C8 C9 C8 C9 2A C2 08 C8 01 27
-87 12 B0 C3 B6 C7 0E C8 28 C5 BE CB 2A C2 6E CA
-CE C3 81 5C 92 42 C0 1D C4 1D 30 4D 9A CB 81 5B
-82 43 BE 1D 30 4D C2 CB 01 5D B2 43 BE 1D 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C5 82 49 53 00 87 12
-C8 C3 F2 C2 28 C5 02 CC 9E CB 34 C2 E0 CB C8 C9
-2A C2 B0 CB E0 CB 2A C2 EA CB 09 49 4D 4D 45 44
+04 C6 8C C5 42 C9 82 C5 46 C9 A4 C2 0C C3 1E C6
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 CA
+14 C6 30 FF A0 C8 26 C3 1E C6 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 CA 3C C4 E0 C9 C2 C8 05 41
+42 4F 52 54 3F 40 80 1C D0 3F 1E CA 86 41 42 4F
+52 54 22 00 87 12 38 C6 14 C6 40 CA B0 C8 2A C2
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 CF
+B0 12 B6 C4 92 C3 DC 05 38 40 F0 FF 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 DC 05 F3 23 87 12
+42 CF 14 C6 DE 1D EA C2 AC C5 1E C6 04 1B 5B 37
+6D 00 D6 C5 58 C2 40 C4 9A CA 04 C6 1E C6 05 6C
+69 6E 65 3A D6 C5 D0 C2 24 C4 D6 C5 1E C6 04 1B
+5B 30 6D 00 D6 C5 24 CA 00 00 83 5B 27 5D 87 12
+C0 CA 14 C6 14 C6 B0 C8 B0 C8 2A C2 E8 C6 01 27
+87 12 42 C9 80 C6 EE C6 40 C4 CE CA 2A C2 7A C9
+32 C3 81 5C 92 42 C0 1D C4 1D 30 4D AA CA 81 5B
+82 43 BE 1D 30 4D D2 CA 01 5D B2 43 BE 1D 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A C8 82 49 53 00 87 12
+BE C9 EA C2 40 C4 12 CB AE CA 14 C6 F0 CA B0 C8
+2A C2 C0 CA F0 CA 2A C2 FA CA 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D
-68 C7 87 52 45 43 55 52 53 45 19 42 C6 1D 99 42
-BA 1D 00 00 A2 53 C6 1D 30 4D B4 CA 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C3 B6 C7 0E C8 54 C2
-28 C5 BE CB 70 C3 28 C5 66 CC 34 C2 34 C2 C8 C9
-C8 C9 34 C2 C8 C9 C8 C9 2A C2 CE CB 81 3B 82 93
-BE 1D A8 27 87 12 34 C2 2A C2 C8 C9 04 CD D0 CB
-2A C2 6C CC 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CC BA 40 87 12 FC FF A2 83 C6 1D B2 43
-BE 1D 82 4F BC 1D 30 4D 84 CC 01 3A 30 12 A4 CC
-87 12 92 C7 B0 C3 B6 C7 CA CC 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CC 02 00
-82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A
-C6 1D 30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42
-B8 1D A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C7
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CB B0 C7 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CC BA 40 86 12 FC FF E4 3F 16 CA 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CC BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CD 06 43 52 45 41 54
-45 00 B0 12 C0 CC BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CA 05 44 4F 45 53 3E 1A 42 BA 1D BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CD 05 44
-45 46 45 52 30 12 12 CD 8B 3F 6E C8 05 3E 42 4F
-44 59 2E 52 30 4D 6A CD 04 43 4F 44 45 00 B0 12
-C0 CC 2A 82 82 4A C6 1D 87 12 B2 CC 94 D0 66 D0
-2A C2 B8 CD 07 43 4F 44 45 4E 4E 4D 87 12 8C CC
-D0 CB C2 CD 2A C2 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D0 04 CD 2A C2 1A CB 03 41 53 4D 92 42
-DA 1D EC 1D B2 40 6A D0 DA 1D D9 3F E8 CD 06 45
-4E 44 41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00
-A2 53 C6 1D B2 43 BE 1D 30 40 AE D0 00 00 05 4C
-4F 32 48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40
-2A C2 02 00 A2 52 C6 1D ED 3F 0A CC 85 48 49 32
-4C 4F 87 12 F2 C4 8C CE C8 C9 D0 CB 94 D0 66 D0
-2A C2 5C CE 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 1D A2 52 C6 1D BE 40 28 C5 00 00 2E 53 30 4D
-9E CD 84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D
-BA 40 24 C5 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C7 84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F
-30 4D D4 CD 85 42 45 47 49 4E 30 40 F2 C4 B2 CE
-85 55 4E 54 49 4C 39 40 28 C5 A2 52 C6 1D 1A 42
-C6 1D 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CD
-85 41 47 41 49 4E 39 40 24 C5 EF 3F 34 CD 85 57
-48 49 4C 45 87 12 78 CE 78 C2 2A C2 22 CC 86 52
-45 50 45 41 54 00 87 12 F6 CE B8 CE 2A C2 92 CE
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42
-C6 1D BE 40 3C C5 FE FF A2 53 00 1C 1A 42 00 1C
-8A 43 00 00 30 4D DA C9 84 4C 4F 4F 50 00 39 40
-5E C5 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C5 85 2B 4C 4F
-4F 50 39 40 4C C5 E5 3F 48 CF 85 4C 45 41 56 45
-1A 42 C6 1D BA 40 6E C5 00 00 BA 40 24 C5 02 00
-B2 50 06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C
-89 4A 00 00 30 4D 8A CF 04 4D 4F 56 45 00 0A 4E
+C4 C9 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 C9
+80 C6 EE C6 58 C2 40 C4 CE CA 0C C3 40 C4 5C CB
+14 C6 14 C6 B0 C8 B0 C8 14 C6 B0 C8 B0 C8 2A C2
+DE CA 81 3B 82 93 BE 1D B5 27 87 12 14 C6 2A C2
+B0 C8 FA CB E0 CA 2A C2 62 CB 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 CB 2F 83 8F 4E 00 00 1E 42 C6 1D
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 30 4D
+7A CB 01 3A 30 12 A0 CB 92 B3 C6 1D A2 63 C6 1D
+87 12 42 C9 80 C6 C8 CB 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F
+BC 1D 2A 52 82 4A C6 1D 30 41 82 9F BC 1D 09 20
+18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E C6 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C CA 90 C9 05 44 45 46 45 52
+B0 12 B8 CB BA 40 30 40 FC FF BA 40 AE CB FE FF
+E3 3F 1E C9 06 43 52 45 41 54 45 00 B0 12 B8 CB
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A CC 05 44
+4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E C7 05 3E 42 4F 44 59 2E 52
+30 4D 44 CC 04 43 4F 44 45 00 B0 12 B8 CB A2 82
+C6 1D 87 12 D2 CE AC CE 2A C2 84 CC 07 43 4F 44
+45 4E 4E 4D B0 12 86 CB F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 CE FA CB 2A C2 2C CA 03 41
+53 4D B2 40 B0 CE DA 1D E0 3F AC CC 06 45 4E 44
+41 53 4D 00 87 12 B4 CC F4 CE 2A C2 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53
+C6 1D B2 43 BE 1D 30 40 E0 CE 00 00 05 4C 4F 32
+48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A C2
+02 00 A2 52 C6 1D ED 3F 1A CB 85 48 49 32 4C 4F
+87 12 A0 C8 4A CD B0 C8 E0 CA D2 CE AC CE 2A C2
+1A CD 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
+A2 52 C6 1D BE 40 40 C4 00 00 2E 53 30 4D 5E CC
+84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40
+3C C4 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 C5
+84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D
+9C CC 85 42 45 47 49 4E 30 40 A0 C8 70 CD 85 55
+4E 54 49 4C 39 40 40 C4 A2 52 C6 1D 1A 42 C6 1D
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE CC 85 41
+47 41 49 4E 39 40 3C C4 EF 3F 7A C6 85 57 48 49
+4C 45 87 12 36 CD 76 C2 2A C2 34 C6 86 52 45 50
+45 41 54 00 87 12 B4 CD 76 CD 2A C2 50 CD 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D
+BE 40 54 C4 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
+00 00 30 4D E2 C8 84 4C 4F 4F 50 00 39 40 76 C4
+A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
+1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 C4 85 2B 4C 4F 4F 50
+39 40 64 C4 E5 3F 06 CE 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE CE
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CD
-34 C2 10 00 34 C2 00 00 3C C5 34 C2 00 00 C8 C9
-5E C5 0A D0 F2 C4 34 C2 C8 1D 44 C2 F2 C2 C8 C9
-FA C2 8A CD 34 C2 CA 1D FA C2 2A C2 AE CB 05 46
-4F 52 54 48 84 12 24 D0 8E D0 C2 D3 CC D0 2E D0
-74 CE 7C CF F8 D1 BE D0 8E D2 A8 D2 D0 CE 34 D3
-00 00 CC D1 D8 CB AC CD 00 00 F0 CE 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D0 C8 D9 30 DA 7C D9
-9A DA 42 D9 BE DA 6E D6 00 00 38 D9 E8 D9 9A D9
-D8 D9 7E D7 00 00 00 00 CC DA 58 D0 5C D0 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D
-9D 3F 3C CC 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 1D 38 40 CA 1D 8A 3F 9E C7 04 4F
-4E 4C 59 00 82 43 CC 1D 30 4D 20 CF 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D
-C4 CE 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CC 86 5B 54 48 45 4E 5D 00 30 4D 14 D1
-86 5B 45 4C 53 45 5D 00 87 12 34 C2 00 00 36 C3
-B0 C3 B6 C7 1C CA 44 C2 28 C5 8E D1 8A C2 8A C2
-52 C7 06 5B 54 48 45 4E 5D 00 EA D0 32 C5 5C D1
-36 C7 40 C3 54 C2 32 C5 30 D1 2A C2 8A C2 8A C2
-52 C7 06 5B 45 4C 53 45 5D 00 EA D0 32 C5 7C D1
-36 C7 40 C3 54 C2 32 C5 2E D1 2A C2 52 C7 04 5B
-49 46 5D 00 EA D0 32 C5 30 D1 24 C5 2E D1 36 C7
-52 C7 05 0D 0A 6B 6F 20 14 C7 92 C6 2A CA 24 C5
-30 D1 20 D1 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D1 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C3 B6 C7 0E C8 6C C2 2A C2 B4 D1 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C3 B6 C7 0E C8
-6C C2 64 C3 2A C2 E8 D1 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 CF 06 4D 41 52 4B 45 52 00
-B0 12 C0 CC BA 40 84 12 FC FF BA 40 E6 D1 FE FF
-9A 42 C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D
-30 40 0A CD 34 D0 C4 D0 D8 D0 2C D2 3A 4E 82 4A
-C8 1D 2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D0
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D2 8A D0
-DE DA 0E CF 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D2 92 42 0C 18 70 D2 EF 3F 60 D2 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 1D 6E D2 92 42
-C6 1D 70 D2 30 4D 74 D2 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F
-F0 CF 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C6 24 C6 B2 40 3E D3 3C D3
-B2 40 8A D0 0E 18 B2 40 DE DA 0C 18 30 12 7E D2
-B2 40 8C C6 8A C6 B2 40 46 C7 44 C7 B2 40 A0 C5
-9E C5 B2 40 18 00 0A 18 37 40 1A C2 36 40 BC C2
-35 40 0E C2 34 40 00 C2 39 40 10 00 29 83 89 43
-E0 1D FC 23 B2 40 0A 00 DC 1D B2 40 20 00 B4 1D
-30 41 C2 D2 04 57 41 52 4D 00 30 40 3E D3 3D 40
-72 D3 92 C3 30 01 1E 42 08 18 0E 93 11 24 D2 B3
-01 02 02 20 3E E3 1E 53 F2 D0 03 00 0D 02 3E 90
-0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27 87 2F
-30 4D 52 C7 06 0D 1B 5B 37 6D 23 00 14 C7 E2 C4
-52 C7 1F 46 61 73 74 46 6F 72 74 68 20 56 33 30
-30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
-73 20 14 C7 34 C2 80 FF F2 C4 28 C3 D2 C4 52 C7
-0B 62 79 74 65 73 20 66 72 65 65 20 24 C5 8A CB
-E2 D0 04 43 4F 4C 44 00 92 B3 CA 05 FD 23 B2 40
-04 A5 20 01 92 D3 30 01 B2 40 88 5A 5C 01 B2 40
-EF 7F 06 02 B2 43 02 02 E2 D2 05 02 B2 40 08 FF
-02 02 B2 D0 08 FF 06 02 B2 D0 F0 00 04 02 F2 40
-F0 00 22 03 F2 D0 F0 00 26 03 F2 D0 0F 00 24 03
-F2 40 A5 00 61 01 B2 40 86 00 62 01 82 43 66 01
-39 40 80 01 B2 40 33 00 64 01 D2 43 61 01 92 D2
-9E 01 08 18 38 40 59 14 18 83 FE 23 19 83 FA 23
-B2 D2 B0 01 92 C3 B0 01 F2 D0 10 00 2A 03 F2 C0
-40 00 A1 04 39 40 00 04 29 83 89 43 00 1C FC 23
-39 40 32 00 29 83 B9 40 D4 D3 CE FF FB 23 B2 40
-2C C6 F0 FF B2 40 81 00 C0 05 92 42 02 18 C6 05
-92 42 04 18 C8 05 92 C3 C0 05 92 D3 DA 05 3F 40
-80 1C 31 40 E0 1C 30 12 3A D3 33 3F 38 40 C0 1D
-39 48 2A 48 09 5A 1A 52 C4 1D 09 9A 03 24 7E 9A
-FC 27 1A 83 0E 4A 2A 88 82 4A C4 1D 30 4D 1C 15
-B0 12 2A C2 B6 C7 0E C8 32 C5 D4 D4 CA C8 28 C5
-BE CB F6 D4 D6 D4 29 4E 39 90 86 12 02 20 2E 53
-0A 3C 39 90 85 12 03 20 1E 4E 02 00 04 3C 39 90
-84 12 01 20 2E 52 1B 17 30 41 3E 40 28 00 B0 12
-BE D4 19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 C6
+CA 1D F2 C2 2A C2 84 12 7E CE AE CD 56 D1 DE CD
+BE CA 32 CD 3A CE 6A D2 64 C6 66 CF 80 CF 8E CD
+00 D0 00 00 3C D2 E8 CA 78 CC 00 00 84 12 7E CE
+88 D7 EA D7 3C D7 5E D8 02 D7 00 00 32 D4 00 00
+F8 D6 A8 D7 5A D7 98 D7 42 D5 00 00 00 00 3A D8
+AA CE 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D C6 3F
+3A 40 0E 00 39 40 CC 1D 38 40 CA 1D B9 3F 82 43
+CC 1D 30 4D 92 42 CA 1D DA 1D 30 4D 86 CE EE CE
+F4 CE 04 CF 3A 4E 82 4A C8 1D 2E 4E 82 4E C6 1D
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 CB 09 50 57 52 5F 53 54 41
+54 45 84 12 FC CE D0 CE 70 D8 CC CD 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 CF 92 42 0C 18
+48 CF EF 3F 38 CF 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 1D 46 CF 92 42 C6 1D 48 CF 30 4D 4C CF
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 1D 0E 18
+92 42 C6 1D 0C 18 EC 3F BC CD 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 C4
+DE C4 B2 40 0A D0 08 D0 B2 40 D0 CE 0E 18 B2 40
+70 D8 0C 18 30 12 56 CF B2 40 86 C5 84 C5 B2 40
+08 C6 06 C6 B2 40 98 C4 96 C4 B2 40 18 00 0A 18
+37 40 1A C2 36 40 92 C2 35 40 0E C2 34 40 00 C2
+B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41 9A CF
+04 57 41 52 4D 00 30 40 0A D0 3D 40 3E D0 92 C3
+30 01 1E 42 08 18 0E 93 11 24 D2 B3 01 02 02 20
+3E E3 1E 53 F2 D0 03 00 0D 02 3E 90 0A 00 B8 27
+3E 90 16 00 B5 2F 2E 93 84 27 8D 2F 30 4D 1E C6
+06 0D 1B 5B 37 6D 23 00 D6 C5 34 C4 1E C6 19 46
+61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54
+68 6F 6F 72 65 6E 73 20 D6 C5 14 C6 30 FF A0 C8
+B8 C2 24 C4 1E C6 0A 62 79 74 65 73 20 66 72 65
+65 00 3C C4 9A CA 82 CD 04 43 4F 4C 44 00 92 B3
+CA 05 FD 23 B2 40 04 A5 20 01 3E D0 92 D3 30 01
+B2 40 88 5A 5C 01 B2 43 06 02 B2 40 EF 7F 02 02
+E2 D2 05 02 B2 43 26 02 B2 D0 08 FF 22 02 F2 D3
+26 03 F2 40 F0 00 22 03 F2 40 A5 00 61 01 B2 40
+86 00 62 01 82 43 66 01 39 40 80 01 B2 40 33 00
+64 01 D2 43 61 01 92 D2 9E 01 08 18 38 40 59 14
+18 83 FE 23 19 83 FA 23 B2 D2 B0 01 92 C3 B0 01
+F2 D0 10 00 2A 03 F2 C0 40 00 A1 04 39 40 00 04
+29 83 89 43 00 1C FC 23 39 40 32 00 29 83 B9 40
+9C D0 CE FF FB 23 B2 40 26 C5 F0 FF B2 40 81 00
+C0 05 92 42 02 18 C6 05 92 42 04 18 C8 05 92 C3
+C0 05 92 D3 DA 05 3F 40 80 1C 31 40 E0 1C 30 12
+06 D0 43 3F 88 D0 07 43 4F 4D 50 41 52 45 0C 4E
+38 4F 3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30
+1C 83 07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43
+30 4D 1E 43 30 4D B2 CB 86 5B 54 48 45 4E 5D 00
+30 4D 88 D1 86 5B 45 4C 53 45 5D 00 87 12 14 C6
+00 00 C6 C2 42 C9 80 C6 24 C9 34 C2 40 C4 FE D1
+44 C2 1E C6 06 5B 54 48 45 4E 5D 00 5E D1 4A C4
+CE D1 F8 C5 D0 C2 58 C2 4A C4 A4 D1 2A C2 44 C2
+1E C6 06 5B 45 4C 53 45 5D 00 5E D1 4A C4 EC D1
+F8 C5 D0 C2 58 C2 4A C4 A2 D1 2A C2 1E C6 04 5B
+49 46 5D 00 5E D1 4A C4 A4 D1 3C C4 A2 D1 F8 C5
+1E C6 05 0D 0A 6B 6F 20 D6 C5 8C C5 32 C9 3C C4
+A4 D1 94 D1 84 5B 49 46 5D 00 0E 93 3E 4F BE 27
+30 4D 14 D2 89 5B 44 45 46 49 4E 45 44 5D 87 12
+42 C9 80 C6 EE C6 6A C2 2A C2 24 D2 8B 5B 55 4E
+44 45 46 49 4E 45 44 5D 87 12 42 C9 80 C6 EE C6
+6A C2 00 C3 2A C2 58 D2 3D 41 B2 4E 0E 18 A2 4E
+0C 18 3E 4F 30 40 56 CF 48 CE 06 4D 41 52 4B 45
+52 00 B0 12 B8 CB BA 40 84 12 FC FF BA 40 56 D2
+FE FF 9A 42 C8 1D 00 00 28 83 8A 48 02 00 A2 52
+C6 1D 30 40 00 CC 1C 15 B0 12 2A C2 80 C6 EE C6
+4A C4 AC D2 AA C7 40 C4 CE CA C6 D2 AE D2 39 4E
+39 80 86 12 08 24 19 53 02 20 2E 4E 04 3C 2E 53
+19 53 01 24 2E 82 1B 17 30 41 3E 40 28 00 B0 12
+96 D2 19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40
 29 00 1C 15 12 12 C4 1D 92 53 C4 1D B0 12 2A C2
-B6 C7 CA C8 28 C5 34 D5 2A D5 21 53 3E 90 10 00
-83 2D E1 2B 36 D5 B2 41 C4 1D DD 3F 87 12 B0 C3
-9C D4 44 D5 0C 43 1B 42 C6 1D A2 53 C6 1D 6A 4E
-3E 4F 7A 90 23 00 2D 20 92 53 C4 1D B0 12 BE D4
-0E 93 03 20 3C 40 00 03 21 3C 1E 93 03 20 3C 40
-10 03 1C 3C 2E 93 03 20 3C 40 20 03 17 3C 2E 92
-03 20 3C 40 20 02 12 3C 3E 92 03 20 3C 40 30 02
-0D 3C 3E 93 03 20 3C 40 30 03 08 3C 3C 40 30 00
-19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 4F 3D 41
-30 4D 7A 90 26 00 07 20 3C 40 10 02 92 53 C4 1D
-B0 12 BE D4 ED 3F 7A 90 40 00 16 20 3C 40 20 00
-92 53 C4 1D B0 12 12 D5 0C 20 3C 50 10 00 3E 40
-2B 00 B0 12 12 D5 92 92 C0 1D C4 1D 02 24 92 53
-C4 1D 8E 10 0C 5E DA 3F B0 12 12 D5 FA 23 3C 50
-10 00 B0 12 FA D4 EF 3F 0C 43 1B 42 C6 1D A2 53
-C6 1D 87 12 B0 C3 9C D4 1A D6 FE 90 26 00 00 00
-3E 40 20 00 03 20 3C 50 82 00 C8 3F B0 12 12 D5
-E1 23 3C 50 80 00 B0 12 FA D4 DC 3F 1C C6 04 52
-45 54 49 00 87 12 34 C2 00 13 C8 C9 2A C2 34 C2
-2C 00 3C D5 12 D6 58 D6 2E 4E 0E DC 09 4B A4 3F
-3E CE 03 4D 4F 56 84 12 4E D6 00 40 62 D6 05 4D
-4F 56 2E 42 84 12 4E D6 40 40 00 00 03 41 44 44
-84 12 4E D6 00 50 7C D6 05 41 44 44 2E 42 84 12
-4E D6 40 50 88 D6 04 41 44 44 43 00 84 12 4E D6
-00 60 96 D6 06 41 44 44 43 2E 42 00 84 12 4E D6
-40 60 3E D6 04 53 55 42 43 00 84 12 4E D6 00 70
-B4 D6 06 53 55 42 43 2E 42 00 84 12 4E D6 40 70
-C2 D6 03 53 55 42 84 12 4E D6 00 80 D2 D6 05 53
-55 42 2E 42 84 12 4E D6 40 80 20 CE 03 43 4D 50
-84 12 4E D6 00 90 EC D6 05 43 4D 50 2E 42 84 12
-4E D6 40 90 0E CE 04 44 41 44 44 00 84 12 4E D6
-00 A0 06 D7 06 44 41 44 44 2E 42 00 84 12 4E D6
-40 A0 F8 D6 03 42 49 54 84 12 4E D6 00 B0 24 D7
-05 42 49 54 2E 42 84 12 4E D6 40 B0 30 D7 03 42
-49 43 84 12 4E D6 00 C0 3E D7 05 42 49 43 2E 42
-84 12 4E D6 40 C0 4A D7 03 42 49 53 84 12 4E D6
-00 D0 58 D7 05 42 49 53 2E 42 84 12 4E D6 40 D0
-00 00 03 58 4F 52 84 12 4E D6 00 E0 72 D7 05 58
-4F 52 2E 42 84 12 4E D6 40 E0 A4 D6 03 41 4E 44
-84 12 4E D6 00 F0 8C D7 05 41 4E 44 2E 42 84 12
-4E D6 40 F0 B0 C3 3C D5 AA D7 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F DE D6 03 52 52 43
-84 12 A4 D7 00 10 BC D7 05 52 52 43 2E 42 84 12
-A4 D7 40 10 C8 D7 04 53 57 50 42 00 84 12 A4 D7
-80 10 D6 D7 03 52 52 41 84 12 A4 D7 00 11 E4 D7
-05 52 52 41 2E 42 84 12 A4 D7 40 11 F0 D7 03 53
-58 54 84 12 A4 D7 80 11 00 00 04 50 55 53 48 00
-84 12 A4 D7 00 12 0A D8 06 50 55 53 48 2E 42 00
-84 12 A4 D7 40 12 64 D7 04 43 41 4C 4C 00 84 12
-A4 D7 80 12 1A 53 0E 4A 87 12 E2 C4 52 C7 0D 6F
-75 74 20 6F 66 20 62 6F 75 6E 64 73 3A CB B0 C3
-9C D4 54 D8 92 53 C4 1D 3E 40 2C 00 B0 12 2A C2
-B6 C7 CA C8 28 C5 BE CB 08 D6 6C D8 0A 4E 3E 4F
-1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
-0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92
-D1 2F 8A 10 5A 06 8F 3F FE D7 04 52 52 43 4D 00
-84 12 4E D8 50 00 9A D8 04 52 52 41 4D 00 84 12
-4E D8 50 01 A8 D8 04 52 4C 41 4D 00 84 12 4E D8
-50 02 B6 D8 04 52 52 55 4D 00 84 12 4E D8 50 03
-18 D8 05 50 55 53 48 4D 84 12 4E D8 00 15 D2 D8
-04 50 4F 50 4D 00 84 12 4E D8 00 17 85 12 00 3C
-C4 D8 03 53 3E 3D 85 12 00 38 F2 D8 02 53 3C 00
-85 12 00 34 E0 D8 03 30 3E 3D 85 12 00 30 06 D9
+80 C6 AA C7 40 C4 04 D3 FA D2 21 53 3E 90 10 00
+7D 2D E1 2B 06 D3 B2 41 C4 1D DD 3F 87 12 42 C9
+74 C6 14 D3 0C 43 1B 42 C6 1D A2 53 C6 1D 6A 4E
+3E 4F 7A 90 23 00 27 20 92 53 C4 1D B0 12 96 D2
+3C 40 00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24
+3C 40 20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24
+3C 40 30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24
+3C 40 30 00 19 42 C6 1D A2 53 C6 1D 89 4E 00 00
+3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02
+92 53 C4 1D B0 12 96 D2 ED 3F 7A 90 40 00 16 20
+3C 40 20 00 92 53 C4 1D B0 12 E2 D2 0C 20 3C 50
+10 00 3E 40 2B 00 B0 12 E2 D2 92 92 C0 1D C4 1D
+02 24 92 53 C4 1D 8E 10 0C 5E DA 3F B0 12 E2 D2
+FA 23 3C 50 10 00 B0 12 CA D2 EF 3F 0C 43 1B 42
+C6 1D A2 53 C6 1D 87 12 42 C9 74 C6 DE D3 FE 90
+26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F
+B0 12 E2 D2 E1 23 3C 50 80 00 B0 12 CA D2 DC 3F
+D6 C4 04 52 45 54 49 00 87 12 14 C6 00 13 B0 C8
+2A C2 14 C6 2C 00 0C D3 D6 D3 1C D4 09 4B 2E 4E
+0E DC A4 3F FC CC 03 4D 4F 56 84 12 12 D4 00 40
+26 D4 05 4D 4F 56 2E 42 84 12 12 D4 40 40 00 00
+03 41 44 44 84 12 12 D4 00 50 40 D4 05 41 44 44
+2E 42 84 12 12 D4 40 50 4C D4 04 41 44 44 43 00
+84 12 12 D4 00 60 5A D4 06 41 44 44 43 2E 42 00
+84 12 12 D4 40 60 02 D4 04 53 55 42 43 00 84 12
+12 D4 00 70 78 D4 06 53 55 42 43 2E 42 00 84 12
+12 D4 40 70 86 D4 03 53 55 42 84 12 12 D4 00 80
+96 D4 05 53 55 42 2E 42 84 12 12 D4 40 80 DE CC
+03 43 4D 50 84 12 12 D4 00 90 B0 D4 05 43 4D 50
+2E 42 84 12 12 D4 40 90 CC CC 04 44 41 44 44 00
+84 12 12 D4 00 A0 CA D4 06 44 41 44 44 2E 42 00
+84 12 12 D4 40 A0 BC D4 03 42 49 54 84 12 12 D4
+00 B0 E8 D4 05 42 49 54 2E 42 84 12 12 D4 40 B0
+F4 D4 03 42 49 43 84 12 12 D4 00 C0 02 D5 05 42
+49 43 2E 42 84 12 12 D4 40 C0 0E D5 03 42 49 53
+84 12 12 D4 00 D0 1C D5 05 42 49 53 2E 42 84 12
+12 D4 40 D0 00 00 03 58 4F 52 84 12 12 D4 00 E0
+36 D5 05 58 4F 52 2E 42 84 12 12 D4 40 E0 68 D4
+03 41 4E 44 84 12 12 D4 00 F0 50 D5 05 41 4E 44
+2E 42 84 12 12 D4 40 F0 42 C9 0C D3 6E D5 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F A2 D4
+03 52 52 43 84 12 68 D5 00 10 80 D5 05 52 52 43
+2E 42 84 12 68 D5 40 10 8C D5 04 53 57 50 42 00
+84 12 68 D5 80 10 9A D5 03 52 52 41 84 12 68 D5
+00 11 A8 D5 05 52 52 41 2E 42 84 12 68 D5 40 11
+B4 D5 03 53 58 54 84 12 68 D5 80 11 00 00 04 50
+55 53 48 00 84 12 68 D5 00 12 CE D5 06 50 55 53
+48 2E 42 00 84 12 68 D5 40 12 28 D5 04 43 41 4C
+4C 00 84 12 68 D5 80 12 1A 53 0E 4A 87 12 34 C4
+1E C6 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+4C CA 42 C9 74 C6 18 D6 92 53 C4 1D 3E 40 2C 00
+B0 12 2A C2 80 C6 AA C7 40 C4 CE CA CC D3 30 D6
+0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E
+94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F C2 D5 04 52
+52 43 4D 00 84 12 12 D6 50 00 5E D6 04 52 52 41
+4D 00 84 12 12 D6 50 01 6C D6 04 52 4C 41 4D 00
+84 12 12 D6 50 02 7A D6 04 52 52 55 4D 00 84 12
+12 D6 50 03 DC D5 05 50 55 53 48 4D 84 12 12 D6
+00 15 96 D6 04 50 4F 50 4D 00 84 12 12 D6 00 17
+88 D6 03 53 3E 3D 85 12 00 38 B2 D6 02 53 3C 00
+85 12 00 34 A4 D6 03 30 3E 3D 85 12 00 30 C6 D6
 02 30 3C 00 85 12 00 30 00 00 02 55 3C 00 85 12
-00 2C 1A D9 03 55 3E 3D 85 12 00 28 10 D9 03 30
-3C 3E 85 12 00 24 2E D9 02 30 3D 00 85 12 00 20
+00 2C DA D6 03 55 3E 3D 85 12 00 28 D0 D6 03 30
+3C 3E 85 12 00 24 EE D6 02 30 3D 00 85 12 00 20
 00 00 02 49 46 00 1A 42 C6 1D 8A 4E 00 00 A2 53
-C6 1D 0E 4A 30 4D 24 D9 04 54 48 45 4E 00 1A 42
+C6 1D 0E 4A 30 4D E4 D6 04 54 48 45 4E 00 1A 42
 C6 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
-00 02 61 2F 88 DA 00 00 30 4D 14 D7 04 45 4C 53
+00 02 63 2F 88 DA 00 00 30 4D D8 D4 04 45 4C 53
 45 00 1A 42 C6 1D BA 40 00 3C 00 00 A2 53 C6 1D
-2F 83 8F 4A 00 00 E3 3F 58 D9 05 55 4E 54 49 4C
+2F 83 8F 4A 00 00 E3 3F 18 D7 05 55 4E 54 49 4C
 3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11
-3A 90 00 FE 40 3B 3A F0 FF 03 08 DA 89 48 00 00
-A2 53 C6 1D 30 4D 98 D7 05 41 47 41 49 4E 87 12
-EC D8 A0 D9 2A C2 00 00 05 57 48 49 4C 45 87 12
-46 D9 78 C2 2A C2 FC D8 06 52 45 50 45 41 54 00
-87 12 EC D8 A0 D9 5E D9 2A C2 FC D9 3D 41 2E 4E
-08 4E 3E 4F 2A 48 0A 93 88 43 00 00 CA 23 98 42
-C6 1D 00 00 30 4D 28 D8 03 42 57 31 84 12 FA D9
-E0 1D 18 DA 03 42 57 32 84 12 FA D9 E2 1D 24 DA
-03 42 57 33 84 12 FA D9 E4 1D 3C DA 3D 41 1A 42
-C6 1D 2E 4E 28 4E 08 93 8E 43 00 00 8B 23 BA 4F
-00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00
-03 46 57 31 84 12 3A DA E6 1D 60 DA 03 46 57 32
-84 12 3A DA E8 1D 6C DA 03 46 57 33 84 12 3A DA
-EA 1D 3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10
-02 24 3E E0 00 08 30 4D 78 DA 04 47 4F 54 4F 00
-87 12 EC D8 B0 CB BE C9 2A C2 00 00 05 3F 47 4F
-54 4F 87 12 82 DA B0 CB BE C9 2A C2 00 00 03 4A
-4D 50 87 12 B0 CB CE D9 2A C2 AC DA 04 3F 4A 4D
-50 00 87 12 82 DA B0 CB 78 C2 A0 D9 2A C2
+3A 90 00 FE 42 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C6 1D 30 4D 5C D5 05 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 87 12
+06 D7 76 C2 2A C2 BC D6 06 52 45 50 45 41 54 00
+87 12 8E D7 1E D7 2A C2 BA D7 3D 41 08 4E 3E 4F
+2A 48 B2 92 C4 1D CD 2F 98 42 C6 1D 00 00 30 4D
+EC D5 03 42 57 31 84 12 B8 D7 00 00 D2 D7 03 42
+57 32 84 12 B8 D7 00 00 DE D7 03 42 57 33 84 12
+B8 D7 00 00 F6 D7 3D 41 1A 42 C6 1D 28 4E B2 92
+C4 1D 90 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00
+3E 4F 30 4D 00 00 03 46 57 31 84 12 F4 D7 00 00
+16 D8 03 46 57 32 84 12 F4 D7 00 00 22 D8 03 46
+57 33 84 12 F4 D7 00 00 00 00 05 3F 47 4F 54 4F
+3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10 02 24
+3E E0 00 08 87 12 C0 CA DA C8 2A C2 2E D8 04 47
+4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
 @FFFE
-D4 D3
+9C D0
 q
diff --git a/binaries/MSP_EXP430FR5739_4MHz.txt b/binaries/MSP_EXP430FR5739_4MHz.txt
deleted file mode 100644 (file)
index a340add..0000000
+++ /dev/null
@@ -1,405 +0,0 @@
-@1800
-10 00 02 00 21 BB A0 0F 05 00 18 00 DA DA 8A D0
-2C 01 7B B0 FC C5 0E C6
-@C200
-2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
-8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C2
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C2 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C2 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C2 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C2 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C2 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C2 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C2 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C2 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C3 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C2 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C3 02 31 2D 00
-1E 83 30 4D D8 C2 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C3
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C3 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C3 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C2 01 3E 3E 8F F4 3B EB 37 0E C3 02 42 4C 00
-85 12 20 00 AC C3 04 42 41 53 45 00 85 12 DC 1D
-C8 C2 05 53 54 41 54 45 85 12 BE 1D 96 C3 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 C3 06 55 4D 2F
-4D 4F 44 00 30 12 62 C2 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C2 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C3
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 C3 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 C4
-02 23 53 00 87 12 32 C4 6A C4 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C4 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C3 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C3
-02 44 2E 00 87 12 D2 C3 44 C2 B0 C2 4C C3 64 C4
-BC C2 A2 C4 7E C4 14 C7 DC C6 2A C2 DC C3 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C2
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C4 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 C2
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A C4
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C4 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C4 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C3 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C5 03 4B 45 59 30 40 A0 C5
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 FC C5 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 0E C6 30 4D 00 C5
-06 41 43 43 45 50 54 00 3C 40 6A C6 3B 40 34 C6
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C6 92 B3 DC 05 05 24 18 42 CC 05 38 90
-0A 00 04 20 21 53 39 40 22 C6 4D 15 A2 B3 DC 05
-FD 27 B2 40 11 00 CE 05 E2 C2 03 02 30 41 B2 40
-13 00 CE 05 E2 D2 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C6 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 CC 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 DC 05 FD 27 82 48 CE 05 30 4D 60 C6
-2D 83 92 B3 DC 05 E4 23 FC 27 82 93 DE 1D 02 24
-92 53 DE 1D 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C4 04 45 4D 49 54 00 30 40 8C C6 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 1D 00 00 AF 4F 02 00 8F 3F 82 C6 04 45 43 48
-4F 00 B2 40 82 48 58 C6 82 43 DE 1D 30 4D E0 C4
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C6 92 43
-DE 1D 30 4D 9C C4 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C6 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C6 EF 3F 00 C7
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C5 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C7 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C7 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C5 02 43
-52 00 30 40 46 C7 87 12 52 C7 02 0D 0A 00 14 C7
-2A C2 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C6 82 53 22 00 82 43 B4 1D
-87 12 34 C2 52 C7 C8 C9 34 C2 22 00 B6 C7 80 C7
-3D 41 B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D
-3E 4F 92 B3 C6 1D A2 63 C6 1D 30 4D C0 C6 82 2E
-22 00 87 12 6C C7 34 C2 14 C7 C8 C9 2A C2 00 00
-04 57 4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
-60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
-18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D
-F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E
-CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
-0C 4E 65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93
-1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
-FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
-0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
-09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C2 34 40 00 C2 30 4D A2 C3 07 3E
-4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
-DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
-07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
-D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
-E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43
-2D 15 3D 40 10 C9 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 C9 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C3
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C6 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C3 01 2C 1A 42 C6 1D A2 53 C6 1D
-8A 4E 00 00 3E 4F 30 4D C6 C9 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D
-BA 40 34 C2 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C7 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F
-C2 1D 3E 4F 82 43 C4 1D 30 4D 87 12 2A CA B0 C3
-B6 C7 44 CA 3D 40 4C CA E2 22 5D 3E 4E CA 0A 4E
-3E 4F 3D 40 64 CA 39 27 3D 40 3E CA 1A E2 BE 1D
-B3 27 AD 23 66 CA 3E 4F 3D 40 3E CA BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CD
-CD 3F B6 C9 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 1D 3C 49 3B 49 3A 49 3D 15 B0 12 2A C2 3A CA
-A2 CA B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41
-30 4D 6C C3 04 51 55 49 54 00 82 43 08 18 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A C2
-42 C7 92 C6 DC C6 3A CA DE C2 70 C3 52 C7 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CB 34 C2
-30 FF F2 C4 8A C3 52 C7 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CB 24 C5 D0 CA C0 C5 05 41 42 4F
-52 54 3F 40 80 1C D1 3F 0C CB 86 41 42 4F 52 54
-22 00 87 12 6C C7 34 C2 2E CB C8 C9 2A C2 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D2 B0 12
-FC C5 92 C3 DC 05 38 40 A8 2A 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 DC 05 F2 23 87 12
-6A D2 34 C2 DE 1D F2 C2 B2 C6 52 C7 04 1B 5B 37
-6D 00 14 C7 54 C2 28 C5 8A CB 42 C7 52 C7 05 6C
-69 6E 65 3A 14 C7 40 C3 D2 C4 14 C7 52 C7 04 1B
-5B 30 6D 00 14 C7 12 CB 00 00 83 5B 27 5D 87 12
-B0 CB 34 C2 34 C2 C8 C9 C8 C9 2A C2 08 C8 01 27
-87 12 B0 C3 B6 C7 0E C8 28 C5 BE CB 2A C2 6E CA
-CE C3 81 5C 92 42 C0 1D C4 1D 30 4D 9A CB 81 5B
-82 43 BE 1D 30 4D C2 CB 01 5D B2 43 BE 1D 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C5 82 49 53 00 87 12
-C8 C3 F2 C2 28 C5 02 CC 9E CB 34 C2 E0 CB C8 C9
-2A C2 B0 CB E0 CB 2A C2 EA CB 09 49 4D 4D 45 44
-49 41 54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D
-68 C7 87 52 45 43 55 52 53 45 19 42 C6 1D 99 42
-BA 1D 00 00 A2 53 C6 1D 30 4D B4 CA 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C3 B6 C7 0E C8 54 C2
-28 C5 BE CB 70 C3 28 C5 66 CC 34 C2 34 C2 C8 C9
-C8 C9 34 C2 C8 C9 C8 C9 2A C2 CE CB 81 3B 82 93
-BE 1D A8 27 87 12 34 C2 2A C2 C8 C9 04 CD D0 CB
-2A C2 6C CC 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CC BA 40 87 12 FC FF A2 83 C6 1D B2 43
-BE 1D 82 4F BC 1D 30 4D 84 CC 01 3A 30 12 A4 CC
-87 12 92 C7 B0 C3 B6 C7 CA CC 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CC 02 00
-82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A
-C6 1D 30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42
-B8 1D A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C7
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CB B0 C7 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CC BA 40 86 12 FC FF E4 3F 16 CA 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CC BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CD 06 43 52 45 41 54
-45 00 B0 12 C0 CC BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CA 05 44 4F 45 53 3E 1A 42 BA 1D BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CD 05 44
-45 46 45 52 30 12 12 CD 8B 3F 6E C8 05 3E 42 4F
-44 59 2E 52 30 4D 6A CD 04 43 4F 44 45 00 B0 12
-C0 CC 2A 82 82 4A C6 1D 87 12 B2 CC 94 D0 66 D0
-2A C2 B8 CD 07 43 4F 44 45 4E 4E 4D 87 12 8C CC
-D0 CB C2 CD 2A C2 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D0 04 CD 2A C2 1A CB 03 41 53 4D 92 42
-DA 1D EC 1D B2 40 6A D0 DA 1D D9 3F E8 CD 06 45
-4E 44 41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00
-A2 53 C6 1D B2 43 BE 1D 30 40 AE D0 00 00 05 4C
-4F 32 48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40
-2A C2 02 00 A2 52 C6 1D ED 3F 0A CC 85 48 49 32
-4C 4F 87 12 F2 C4 8C CE C8 C9 D0 CB 94 D0 66 D0
-2A C2 5C CE 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 1D A2 52 C6 1D BE 40 28 C5 00 00 2E 53 30 4D
-9E CD 84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D
-BA 40 24 C5 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C7 84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F
-30 4D D4 CD 85 42 45 47 49 4E 30 40 F2 C4 B2 CE
-85 55 4E 54 49 4C 39 40 28 C5 A2 52 C6 1D 1A 42
-C6 1D 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CD
-85 41 47 41 49 4E 39 40 24 C5 EF 3F 34 CD 85 57
-48 49 4C 45 87 12 78 CE 78 C2 2A C2 22 CC 86 52
-45 50 45 41 54 00 87 12 F6 CE B8 CE 2A C2 92 CE
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42
-C6 1D BE 40 3C C5 FE FF A2 53 00 1C 1A 42 00 1C
-8A 43 00 00 30 4D DA C9 84 4C 4F 4F 50 00 39 40
-5E C5 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C5 85 2B 4C 4F
-4F 50 39 40 4C C5 E5 3F 48 CF 85 4C 45 41 56 45
-1A 42 C6 1D BA 40 6E C5 00 00 BA 40 24 C5 02 00
-B2 50 06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C
-89 4A 00 00 30 4D 8A CF 04 4D 4F 56 45 00 0A 4E
-38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
-F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE CE
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CD
-34 C2 10 00 34 C2 00 00 3C C5 34 C2 00 00 C8 C9
-5E C5 0A D0 F2 C4 34 C2 C8 1D 44 C2 F2 C2 C8 C9
-FA C2 8A CD 34 C2 CA 1D FA C2 2A C2 AE CB 05 46
-4F 52 54 48 84 12 24 D0 8E D0 C2 D3 CC D0 2E D0
-74 CE 7C CF F8 D1 BE D0 8E D2 A8 D2 D0 CE 34 D3
-00 00 CC D1 D8 CB AC CD 00 00 F0 CE 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D0 C4 D9 2C DA 78 D9
-96 DA 3E D9 BA DA 6A D6 00 00 34 D9 E4 D9 96 D9
-D4 D9 7A D7 00 00 00 00 C8 DA 58 D0 5C D0 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D
-9D 3F 3C CC 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 1D 38 40 CA 1D 8A 3F 9E C7 04 4F
-4E 4C 59 00 82 43 CC 1D 30 4D 20 CF 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D
-C4 CE 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CC 86 5B 54 48 45 4E 5D 00 30 4D 14 D1
-86 5B 45 4C 53 45 5D 00 87 12 34 C2 00 00 36 C3
-B0 C3 B6 C7 1C CA 44 C2 28 C5 8E D1 8A C2 8A C2
-52 C7 06 5B 54 48 45 4E 5D 00 EA D0 32 C5 5C D1
-36 C7 40 C3 54 C2 32 C5 30 D1 2A C2 8A C2 8A C2
-52 C7 06 5B 45 4C 53 45 5D 00 EA D0 32 C5 7C D1
-36 C7 40 C3 54 C2 32 C5 2E D1 2A C2 52 C7 04 5B
-49 46 5D 00 EA D0 32 C5 30 D1 24 C5 2E D1 36 C7
-52 C7 05 0D 0A 6B 6F 20 14 C7 92 C6 2A CA 24 C5
-30 D1 20 D1 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D1 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C3 B6 C7 0E C8 6C C2 2A C2 B4 D1 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C3 B6 C7 0E C8
-6C C2 64 C3 2A C2 E8 D1 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 CF 06 4D 41 52 4B 45 52 00
-B0 12 C0 CC BA 40 84 12 FC FF BA 40 E6 D1 FE FF
-9A 42 C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D
-30 40 0A CD 34 D0 C4 D0 D8 D0 2C D2 3A 4E 82 4A
-C8 1D 2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D0
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D2 8A D0
-DA DA 0E CF 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D2 92 42 0C 18 70 D2 EF 3F 60 D2 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 1D 6E D2 92 42
-C6 1D 70 D2 30 4D 74 D2 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F
-F0 CF 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C6 24 C6 B2 40 3E D3 3C D3
-B2 40 8A D0 0E 18 B2 40 DA DA 0C 18 30 12 7E D2
-B2 40 8C C6 8A C6 B2 40 46 C7 44 C7 B2 40 A0 C5
-9E C5 B2 40 18 00 0A 18 37 40 1A C2 36 40 BC C2
-35 40 0E C2 34 40 00 C2 39 40 10 00 29 83 89 43
-E0 1D FC 23 B2 40 0A 00 DC 1D B2 40 20 00 B4 1D
-30 41 C2 D2 04 57 41 52 4D 00 30 40 3E D3 3D 40
-72 D3 92 C3 30 01 1E 42 08 18 0E 93 11 24 D2 B3
-01 02 02 20 3E E3 1E 53 F2 D0 03 00 0D 02 3E 90
-0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27 87 2F
-30 4D 52 C7 06 0D 1B 5B 37 6D 23 00 14 C7 E2 C4
-52 C7 1F 46 61 73 74 46 6F 72 74 68 20 56 33 30
-30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
-73 20 14 C7 34 C2 80 FF F2 C4 28 C3 D2 C4 52 C7
-0B 62 79 74 65 73 20 66 72 65 65 20 24 C5 8A CB
-E2 D0 04 43 4F 4C 44 00 92 B3 CA 05 FD 23 B2 40
-04 A5 20 01 92 D3 30 01 B2 40 88 5A 5C 01 B2 40
-EF 7F 06 02 B2 43 02 02 E2 D2 05 02 B2 40 08 FF
-02 02 B2 D0 08 FF 06 02 B2 D0 F0 00 04 02 F2 40
-F0 00 22 03 F2 D0 F0 00 26 03 F2 D0 0F 00 24 03
-F2 40 A5 00 61 01 B2 40 11 00 66 01 39 40 40 00
-B2 40 33 00 64 01 D2 43 61 01 92 D2 9E 01 08 18
-38 40 59 14 18 83 FE 23 19 83 FA 23 B2 D2 B0 01
-92 C3 B0 01 F2 D0 10 00 2A 03 F2 C0 40 00 A1 04
-39 40 00 04 29 83 89 43 00 1C FC 23 39 40 32 00
-29 83 B9 40 D4 D3 CE FF FB 23 B2 40 2C C6 F0 FF
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 92 C3 C0 05 92 D3 DA 05 3F 40 80 1C 31 40
-E0 1C 30 12 3A D3 35 3F 38 40 C0 1D 39 48 2A 48
-09 5A 1A 52 C4 1D 09 9A 03 24 7E 9A FC 27 1A 83
-0E 4A 2A 88 82 4A C4 1D 30 4D 1C 15 B0 12 2A C2
-B6 C7 0E C8 32 C5 D0 D4 CA C8 28 C5 BE CB F2 D4
-D2 D4 29 4E 39 90 86 12 02 20 2E 53 0A 3C 39 90
-85 12 03 20 1E 4E 02 00 04 3C 39 90 84 12 01 20
-2E 52 1B 17 30 41 3E 40 28 00 B0 12 BA D4 19 42
-C6 1D A2 53 C6 1D 89 4E 00 00 3E 40 29 00 1C 15
-12 12 C4 1D 92 53 C4 1D B0 12 2A C2 B6 C7 CA C8
-28 C5 30 D5 26 D5 21 53 3E 90 10 00 83 2D E1 2B
-32 D5 B2 41 C4 1D DD 3F 87 12 B0 C3 98 D4 40 D5
-0C 43 1B 42 C6 1D A2 53 C6 1D 6A 4E 3E 4F 7A 90
-23 00 2D 20 92 53 C4 1D B0 12 BA D4 0E 93 03 20
-3C 40 00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C
-2E 93 03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40
-20 02 12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93
-03 20 3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 1D
-A2 53 C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90
-26 00 07 20 3C 40 10 02 92 53 C4 1D B0 12 BA D4
-ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D
-B0 12 0E D5 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-0E D5 92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10
-0C 5E DA 3F B0 12 0E D5 FA 23 3C 50 10 00 B0 12
-F6 D4 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 87 12
-B0 C3 98 D4 16 D6 FE 90 26 00 00 00 3E 40 20 00
-03 20 3C 50 82 00 C8 3F B0 12 0E D5 E1 23 3C 50
-80 00 B0 12 F6 D4 DC 3F 1C C6 04 52 45 54 49 00
-87 12 34 C2 00 13 C8 C9 2A C2 34 C2 2C 00 38 D5
-0E D6 54 D6 2E 4E 0E DC 09 4B A4 3F 3E CE 03 4D
-4F 56 84 12 4A D6 00 40 5E D6 05 4D 4F 56 2E 42
-84 12 4A D6 40 40 00 00 03 41 44 44 84 12 4A D6
-00 50 78 D6 05 41 44 44 2E 42 84 12 4A D6 40 50
-84 D6 04 41 44 44 43 00 84 12 4A D6 00 60 92 D6
-06 41 44 44 43 2E 42 00 84 12 4A D6 40 60 3A D6
-04 53 55 42 43 00 84 12 4A D6 00 70 B0 D6 06 53
-55 42 43 2E 42 00 84 12 4A D6 40 70 BE D6 03 53
-55 42 84 12 4A D6 00 80 CE D6 05 53 55 42 2E 42
-84 12 4A D6 40 80 20 CE 03 43 4D 50 84 12 4A D6
-00 90 E8 D6 05 43 4D 50 2E 42 84 12 4A D6 40 90
-0E CE 04 44 41 44 44 00 84 12 4A D6 00 A0 02 D7
-06 44 41 44 44 2E 42 00 84 12 4A D6 40 A0 F4 D6
-03 42 49 54 84 12 4A D6 00 B0 20 D7 05 42 49 54
-2E 42 84 12 4A D6 40 B0 2C D7 03 42 49 43 84 12
-4A D6 00 C0 3A D7 05 42 49 43 2E 42 84 12 4A D6
-40 C0 46 D7 03 42 49 53 84 12 4A D6 00 D0 54 D7
-05 42 49 53 2E 42 84 12 4A D6 40 D0 00 00 03 58
-4F 52 84 12 4A D6 00 E0 6E D7 05 58 4F 52 2E 42
-84 12 4A D6 40 E0 A0 D6 03 41 4E 44 84 12 4A D6
-00 F0 88 D7 05 41 4E 44 2E 42 84 12 4A D6 40 F0
-B0 C3 38 D5 A6 D7 0A 4C 3C F0 70 00 8A 10 3A F0
-0F 00 0C DA 4F 3F DA D6 03 52 52 43 84 12 A0 D7
-00 10 B8 D7 05 52 52 43 2E 42 84 12 A0 D7 40 10
-C4 D7 04 53 57 50 42 00 84 12 A0 D7 80 10 D2 D7
-03 52 52 41 84 12 A0 D7 00 11 E0 D7 05 52 52 41
-2E 42 84 12 A0 D7 40 11 EC D7 03 53 58 54 84 12
-A0 D7 80 11 00 00 04 50 55 53 48 00 84 12 A0 D7
-00 12 06 D8 06 50 55 53 48 2E 42 00 84 12 A0 D7
-40 12 60 D7 04 43 41 4C 4C 00 84 12 A0 D7 80 12
-1A 53 0E 4A 87 12 E2 C4 52 C7 0D 6F 75 74 20 6F
-66 20 62 6F 75 6E 64 73 3A CB B0 C3 98 D4 50 D8
-92 53 C4 1D 3E 40 2C 00 B0 12 2A C2 B6 C7 CA C8
-28 C5 BE CB 04 D6 68 D8 0A 4E 3E 4F 1A 83 E0 33
-29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
-38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10
-5A 06 8F 3F FA D7 04 52 52 43 4D 00 84 12 4A D8
-50 00 96 D8 04 52 52 41 4D 00 84 12 4A D8 50 01
-A4 D8 04 52 4C 41 4D 00 84 12 4A D8 50 02 B2 D8
-04 52 52 55 4D 00 84 12 4A D8 50 03 14 D8 05 50
-55 53 48 4D 84 12 4A D8 00 15 CE D8 04 50 4F 50
-4D 00 84 12 4A D8 00 17 85 12 00 3C C0 D8 03 53
-3E 3D 85 12 00 38 EE D8 02 53 3C 00 85 12 00 34
-DC D8 03 30 3E 3D 85 12 00 30 02 D9 02 30 3C 00
-85 12 00 30 00 00 02 55 3C 00 85 12 00 2C 16 D9
-03 55 3E 3D 85 12 00 28 0C D9 03 30 3C 3E 85 12
-00 24 2A D9 02 30 3D 00 85 12 00 20 00 00 02 49
-46 00 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 0E 4A
-30 4D 20 D9 04 54 48 45 4E 00 1A 42 C6 1D 08 4E
-3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 61 2F
-88 DA 00 00 30 4D 10 D7 04 45 4C 53 45 00 1A 42
-C6 1D BA 40 00 3C 00 00 A2 53 C6 1D 2F 83 8F 4A
-00 00 E3 3F 54 D9 05 55 4E 54 49 4C 3A 4F 08 4E
-3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11 3A 90 00 FE
-40 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D
-30 4D 94 D7 05 41 47 41 49 4E 87 12 E8 D8 9C D9
-2A C2 00 00 05 57 48 49 4C 45 87 12 42 D9 78 C2
-2A C2 F8 D8 06 52 45 50 45 41 54 00 87 12 E8 D8
-9C D9 5A D9 2A C2 F8 D9 3D 41 2E 4E 08 4E 3E 4F
-2A 48 0A 93 88 43 00 00 CA 23 98 42 C6 1D 00 00
-30 4D 24 D8 03 42 57 31 84 12 F6 D9 E0 1D 14 DA
-03 42 57 32 84 12 F6 D9 E2 1D 20 DA 03 42 57 33
-84 12 F6 D9 E4 1D 38 DA 3D 41 1A 42 C6 1D 2E 4E
-28 4E 08 93 8E 43 00 00 8B 23 BA 4F 00 00 A2 53
-C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-84 12 36 DA E6 1D 5C DA 03 46 57 32 84 12 36 DA
-E8 1D 68 DA 03 46 57 33 84 12 36 DA EA 1D 3E 90
-00 30 07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0
-00 08 30 4D 74 DA 04 47 4F 54 4F 00 87 12 E8 D8
-B0 CB BE C9 2A C2 00 00 05 3F 47 4F 54 4F 87 12
-7E DA B0 CB BE C9 2A C2 00 00 03 4A 4D 50 87 12
-B0 CB CA D9 2A C2 A8 DA 04 3F 4A 4D 50 00 87 12
-7E DA B0 CB 78 C2 9C D9 2A C2
-@FFFE
-D4 D3
-q
index 1de7e2a..c3d368c 100644 (file)
 @1800
-10 00 04 00 51 55 40 1F 05 00 18 00 D8 DA 8A D0
-2C 01 7B B0 FC C5 0E C6
+10 00 04 00 51 55 40 1F 05 00 18 00 6A D8 D0 CE
+2D 01 6B B0 B6 C4 C8 C4
 @C200
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 C2
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 C2 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 C2 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 C2 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E C2 02 3E 52 00
-0E 12 3E 4F 30 4D 96 C2 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 C2 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C C2 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 C2 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 C3 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 C2 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 C3 02 31 2D 00
-1E 83 30 4D D8 C2 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C C3
-02 30 3D 00 1E 83 0E 7E 30 4D 60 C3 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A C3 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC C2 01 3E 3E 8F F4 3B EB 37 0E C3 02 42 4C 00
-85 12 20 00 AC C3 04 42 41 53 45 00 85 12 DC 1D
-C8 C2 05 53 54 41 54 45 85 12 BE 1D 96 C3 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 C3 06 55 4D 2F
-4D 4F 44 00 30 12 62 C2 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 C2 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 C3
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 C3 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 C4
-02 23 53 00 87 12 32 C4 6A C4 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 C4 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 C3 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 C3
-02 44 2E 00 87 12 D2 C3 44 C2 B0 C2 4C C3 64 C4
-BC C2 A2 C4 7E C4 14 C7 DC C6 2A C2 DC C3 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 C2
-01 2E 0E 93 F6 37 38 43 F5 3F 8E C4 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 C2
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A C4
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE C4 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC C4 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E C3 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 C5 03 4B 45 59 30 40 A0 C5
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 FC C5 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 0E C6 30 4D 00 C5
-06 41 43 43 45 50 54 00 3C 40 6A C6 3B 40 34 C6
-2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00
-3D 40 5E C6 92 B3 DC 05 05 24 18 42 CC 05 38 90
-0A 00 04 20 21 53 39 40 22 C6 4D 15 A2 B3 DC 05
-FD 27 B2 40 11 00 CE 05 E2 C2 03 02 30 41 B2 40
-13 00 CE 05 E2 D2 03 02 30 41 00 00 05 53 4C 45
-45 50 30 40 26 C6 12 D2 0A 18 FB 3F 21 52 3A 17
-58 42 CC 05 48 9C 08 2C 48 9B E9 27 78 92 11 20
-2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00
-1E 53 A2 B3 DC 05 FD 27 82 48 CE 05 30 4D 60 C6
-2D 83 92 B3 DC 05 E4 23 FC 27 82 93 DE 1D 02 24
-92 53 DE 1D 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D
-B0 C4 04 45 4D 49 54 00 30 40 8C C6 08 4E 3E 4F
-E0 3F 3F 80 06 00 8F 4E 04 00 3E 40 54 00 BF 40
-3C 1D 00 00 AF 4F 02 00 8F 3F 82 C6 04 45 43 48
-4F 00 B2 40 82 48 58 C6 82 43 DE 1D 30 4D E0 C4
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D 58 C6 92 43
-DE 1D 30 4D 9C C4 05 53 50 41 43 45 2F 83 8F 4E
-00 00 3E 40 20 00 D0 3F D6 C6 06 53 50 41 43 45
-53 00 0E 93 09 24 0D 12 3D 40 FE C6 EF 3F 00 C7
-2D 83 1E 83 EB 23 3D 41 3E 4F 30 4D 66 C5 04 54
-59 50 45 00 0E 93 0F 24 1E 15 3D 40 2A C7 28 4F
-7E 48 8F 48 00 00 2F 83 AF 3F 2C C7 2D 83 91 83
-02 00 F5 23 1D 17 2F 53 3E 4F 30 4D 10 C5 02 43
-52 00 30 40 46 C7 87 12 52 C7 02 0D 0A 00 14 C7
-2A C2 2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E
-1D B3 0D 63 30 4D EA C6 82 53 22 00 82 43 B4 1D
-87 12 34 C2 52 C7 C8 C9 34 C2 22 00 B6 C7 80 C7
-3D 41 B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D
-3E 4F 92 B3 C6 1D A2 63 C6 1D 30 4D C0 C6 82 2E
-22 00 87 12 6C C7 34 C2 14 C7 C8 C9 2A C2 00 00
-04 57 4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A
-3A 5C 28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 C2
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 C2
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E C2
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 C2 02 3E 52 00 0E 12 3E 4F 30 4D 70 C2 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 C2 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 C2 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 C2
+01 21 BE 4F 00 00 3E 4F 30 4D CC C2 02 30 3D 00
+1E 83 0E 7E 30 4D FC C2 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 C3 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 C3 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 C3 02 23 53 00 87 12 88 C3 C0 C3
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 C3
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E C2 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 C3 34 C2 86 C2 D4 C2 BA C3
+92 C2 F8 C3 D4 C3 D6 C5 42 C9 82 C5 2A C2 22 C3
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 C3 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 C4 18 42 CC 05 2F 83 8F 4E
+00 00 B0 12 B6 C4 92 B3 DC 05 FD 27 1E 42 CC 05
+B0 12 C8 C4 30 4D A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C2 03 02 30 41 B2 40 13 00 CE 05 E2 D2
+03 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 C4
+B0 12 B6 C4 12 D2 0A 18 F9 3F F0 C2 06 41 43 43
+45 50 54 00 3C 40 64 C5 3B 40 2E C5 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 C5
+92 B3 DC 05 05 24 18 42 CC 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 CC 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 DC 05
+FD 27 82 48 CE 05 30 4D 5A C5 2D 83 92 B3 DC 05
+E4 23 FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E C2 04 45 4D 49
+54 00 30 40 86 C5 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
+02 00 A8 3F 7C C5 04 45 43 48 4F 00 B2 40 82 48
+52 C5 82 43 DE 1D 30 4D 32 C4 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 C5 92 43 DE 1D 30 4D 20 C4
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC C5
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE C5 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 C3
+02 43 52 00 30 40 08 C6 87 12 1E C6 02 0D 0A 00
+D6 C5 2A C2 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 C3 82 53 22 00 82 43 B4 1D 87 12 14 C6
+1E C6 B0 C8 14 C6 22 00 80 C6 4C C6 B2 40 20 00
+B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41 3E 4F
+30 4D BA C5 82 2E 22 00 87 12 38 C6 14 C6 D6 C5
+B0 C8 2A C2 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52 C4 1D
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D 3B 40
 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D
 F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E
@@ -104,302 +86,281 @@ CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
 FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
-00 00 35 40 0E C2 34 40 00 C2 30 4D A2 C3 07 3E
+00 00 35 40 0E C2 34 40 00 C2 30 4D 82 C2 07 3E
 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
 DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
-8F 48 02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43
-2D 15 3D 40 10 C9 09 43 08 43 3F 82 8F 4E 06 00
-0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43
-02 00 E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53
-04 24 3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F
-12 C9 2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02
-7A 90 F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43
-8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00
-79 90 0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28
-09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 C3
-2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A
-4E 93 2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D AC C6 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 26 C3 01 2C 1A 42 C6 1D A2 53 C6 1D
-8A 4E 00 00 3E 4F 30 4D C6 C9 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D
-BA 40 34 C2 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49
-EB 3F 30 4D 3E C7 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F
-C2 1D 3E 4F 82 43 C4 1D 30 4D 87 12 2A CA B0 C3
-B6 C7 44 CA 3D 40 4C CA E2 22 5D 3E 4E CA 0A 4E
-3E 4F 3D 40 64 CA 39 27 3D 40 3E CA 1A E2 BE 1D
-B3 27 AD 23 66 CA 3E 4F 3D 40 3E CA BA 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 30 CD
-CD 3F B6 C9 08 45 56 41 4C 55 41 54 45 00 39 40
-C0 1D 3C 49 3B 49 3A 49 3D 15 B0 12 2A C2 3A CA
-A2 CA B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41
-30 4D 6C C3 04 51 55 49 54 00 82 43 08 18 31 40
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 1D 0C 43 2D 15 3D 40 F4 C7 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 C7 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E C3 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E C4 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 C2 01 2C
+1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D
+EC C4 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D
+A6 C5 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE C8 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
+1A 42 C6 1D A2 52 C6 1D BA 40 14 C6 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 C6 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
+30 4D 85 12 20 00 87 12 32 C9 42 C9 80 C6 50 C9
+3D 40 58 C9 CC 22 82 3E 5A C9 0A 4E 3E 4F 3D 40
+70 C9 23 27 3D 40 4A C9 1A E2 BE 1D A1 27 B5 23
+72 C9 3E 4F 3D 40 4A C9 B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 CC CB 3F D2 C8
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D 3C 49
+3B 49 3A 49 3D 15 B0 12 2A C2 46 C9 AE C9 B2 41
+C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D 85 12
+BE 1D 08 C3 04 51 55 49 54 00 82 43 08 18 31 40
 E0 1C B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A C2
-42 C7 92 C6 DC C6 3A CA DE C2 70 C3 52 C7 0C 73
-74 61 63 6B 20 65 6D 70 74 79 21 00 2E CB 34 C2
-30 FF F2 C4 8A C3 52 C7 0A 46 52 41 4D 20 66 75
-6C 6C 21 00 2E CB 24 C5 D0 CA C0 C5 05 41 42 4F
-52 54 3F 40 80 1C D1 3F 0C CB 86 41 42 4F 52 54
-22 00 87 12 6C C7 34 C2 2E CB C8 C9 2A C2 8F 93
-02 00 03 20 2F 52 3E 4F 30 4D B0 12 F0 D2 B0 12
-FC C5 92 C3 DC 05 38 40 50 55 39 42 09 59 03 43
-19 83 FD 23 18 83 F9 23 92 B3 DC 05 F2 23 87 12
-6A D2 34 C2 DE 1D F2 C2 B2 C6 52 C7 04 1B 5B 37
-6D 00 14 C7 54 C2 28 C5 8A CB 42 C7 52 C7 05 6C
-69 6E 65 3A 14 C7 40 C3 D2 C4 14 C7 52 C7 04 1B
-5B 30 6D 00 14 C7 12 CB 00 00 83 5B 27 5D 87 12
-B0 CB 34 C2 34 C2 C8 C9 C8 C9 2A C2 08 C8 01 27
-87 12 B0 C3 B6 C7 0E C8 28 C5 BE CB 2A C2 6E CA
-CE C3 81 5C 92 42 C0 1D C4 1D 30 4D 9A CB 81 5B
-82 43 BE 1D 30 4D C2 CB 01 5D B2 43 BE 1D 30 4D
-BE 4F 02 00 3E 4F 30 4D 72 C5 82 49 53 00 87 12
-C8 C3 F2 C2 28 C5 02 CC 9E CB 34 C2 E0 CB C8 C9
-2A C2 B0 CB E0 CB 2A C2 EA CB 09 49 4D 4D 45 44
+04 C6 8C C5 42 C9 82 C5 46 C9 A4 C2 0C C3 1E C6
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 CA
+14 C6 30 FF A0 C8 26 C3 1E C6 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 CA 3C C4 E0 C9 C2 C8 05 41
+42 4F 52 54 3F 40 80 1C D0 3F 1E CA 86 41 42 4F
+52 54 22 00 87 12 38 C6 14 C6 40 CA B0 C8 2A C2
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 CF
+B0 12 B6 C4 92 C3 DC 05 38 40 50 55 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 DC 05 F3 23 87 12
+42 CF 14 C6 DE 1D EA C2 AC C5 1E C6 04 1B 5B 37
+6D 00 D6 C5 58 C2 40 C4 9A CA 04 C6 1E C6 05 6C
+69 6E 65 3A D6 C5 D0 C2 24 C4 D6 C5 1E C6 04 1B
+5B 30 6D 00 D6 C5 24 CA 00 00 83 5B 27 5D 87 12
+C0 CA 14 C6 14 C6 B0 C8 B0 C8 2A C2 E8 C6 01 27
+87 12 42 C9 80 C6 EE C6 40 C4 CE CA 2A C2 7A C9
+32 C3 81 5C 92 42 C0 1D C4 1D 30 4D AA CA 81 5B
+82 43 BE 1D 30 4D D2 CA 01 5D B2 43 BE 1D 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A C8 82 49 53 00 87 12
+BE C9 EA C2 40 C4 12 CB AE CA 14 C6 F0 CA B0 C8
+2A C2 C0 CA F0 CA 2A C2 FA CA 09 49 4D 4D 45 44
 49 41 54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D
-68 C7 87 52 45 43 55 52 53 45 19 42 C6 1D 99 42
-BA 1D 00 00 A2 53 C6 1D 30 4D B4 CA 88 50 4F 53
-54 50 4F 4E 45 00 87 12 B0 C3 B6 C7 0E C8 54 C2
-28 C5 BE CB 70 C3 28 C5 66 CC 34 C2 34 C2 C8 C9
-C8 C9 34 C2 C8 C9 C8 C9 2A C2 CE CB 81 3B 82 93
-BE 1D A8 27 87 12 34 C2 2A C2 C8 C9 04 CD D0 CB
-2A C2 6C CC 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E
-00 00 1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02
-B0 12 F0 CC BA 40 87 12 FC FF A2 83 C6 1D B2 43
-BE 1D 82 4F BC 1D 30 4D 84 CC 01 3A 30 12 A4 CC
-87 12 92 C7 B0 C3 B6 C7 CA CC 3D 41 08 4E 7A 4E
-5A D3 5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00
-09 5E 3E 4F BA 40 30 40 00 00 BA 40 B6 CC 02 00
-82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A
-C6 1D 30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42
-B8 1D A8 49 FE FF 89 48 00 00 30 4D 87 12 52 C7
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-3A CB B0 C7 08 56 41 52 49 41 42 4C 45 00 B0 12
-C0 CC BA 40 86 12 FC FF E4 3F 16 CA 08 43 4F 4E
-53 54 41 4E 54 00 B0 12 C0 CC BA 40 85 12 FC FF
-8A 4E FE FF 3E 4F D5 3F 4C CD 06 43 52 45 41 54
-45 00 B0 12 C0 CC BA 40 85 12 FC FF 8A 4A FE FF
-C8 3F 84 CA 05 44 4F 45 53 3E 1A 42 BA 1D BA 40
-84 12 00 00 8A 4D 02 00 3D 41 30 4D 84 CD 05 44
-45 46 45 52 30 12 12 CD 8B 3F 6E C8 05 3E 42 4F
-44 59 2E 52 30 4D 6A CD 04 43 4F 44 45 00 B0 12
-C0 CC 2A 82 82 4A C6 1D 87 12 B2 CC 94 D0 66 D0
-2A C2 B8 CD 07 43 4F 44 45 4E 4E 4D 87 12 8C CC
-D0 CB C2 CD 2A C2 00 00 07 45 4E 44 43 4F 44 45
-87 12 AE D0 04 CD 2A C2 1A CB 03 41 53 4D 92 42
-DA 1D EC 1D B2 40 6A D0 DA 1D D9 3F E8 CD 06 45
-4E 44 41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00
-A2 53 C6 1D B2 43 BE 1D 30 40 AE D0 00 00 05 4C
-4F 32 48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40
-2A C2 02 00 A2 52 C6 1D ED 3F 0A CC 85 48 49 32
-4C 4F 87 12 F2 C4 8C CE C8 C9 D0 CB 94 D0 66 D0
-2A C2 5C CE 82 49 46 00 2F 83 8F 4E 00 00 1E 42
-C6 1D A2 52 C6 1D BE 40 28 C5 00 00 2E 53 30 4D
-9E CD 84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D
-BA 40 24 C5 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D
-0E C7 84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F
-30 4D D4 CD 85 42 45 47 49 4E 30 40 F2 C4 B2 CE
-85 55 4E 54 49 4C 39 40 28 C5 A2 52 C6 1D 1A 42
-C6 1D 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D FA CD
-85 41 47 41 49 4E 39 40 24 C5 EF 3F 34 CD 85 57
-48 49 4C 45 87 12 78 CE 78 C2 2A C2 22 CC 86 52
-45 50 45 41 54 00 87 12 F6 CE B8 CE 2A C2 92 CE
-82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42
-C6 1D BE 40 3C C5 FE FF A2 53 00 1C 1A 42 00 1C
-8A 43 00 00 30 4D DA C9 84 4C 4F 4F 50 00 39 40
-5E C5 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E
-FE FF 1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24
-8E 4A 00 00 F6 3F 3E 4F 30 4D 98 C5 85 2B 4C 4F
-4F 50 39 40 4C C5 E5 3F 48 CF 85 4C 45 41 56 45
-1A 42 C6 1D BA 40 6E C5 00 00 BA 40 24 C5 02 00
-B2 50 06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C
-89 4A 00 00 30 4D 8A CF 04 4D 4F 56 45 00 0A 4E
+C4 C9 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 C9
+80 C6 EE C6 58 C2 40 C4 CE CA 0C C3 40 C4 5C CB
+14 C6 14 C6 B0 C8 B0 C8 14 C6 B0 C8 B0 C8 2A C2
+DE CA 81 3B 82 93 BE 1D B5 27 87 12 14 C6 2A C2
+B0 C8 FA CB E0 CA 2A C2 62 CB 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 CB 2F 83 8F 4E 00 00 1E 42 C6 1D
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 30 4D
+7A CB 01 3A 30 12 A0 CB 92 B3 C6 1D A2 63 C6 1D
+87 12 42 C9 80 C6 C8 CB 3D 41 08 4E 7A 4E 5A D3
+5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E
+3E 4F 82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F
+BC 1D 2A 52 82 4A C6 1D 30 41 82 9F BC 1D 09 20
+18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E C6 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C CA 90 C9 05 44 45 46 45 52
+B0 12 B8 CB BA 40 30 40 FC FF BA 40 AE CB FE FF
+E3 3F 1E C9 06 43 52 45 41 54 45 00 B0 12 B8 CB
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A CC 05 44
+4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E C7 05 3E 42 4F 44 59 2E 52
+30 4D 44 CC 04 43 4F 44 45 00 B0 12 B8 CB A2 82
+C6 1D 87 12 D2 CE AC CE 2A C2 84 CC 07 43 4F 44
+45 4E 4E 4D B0 12 86 CB F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 CE FA CB 2A C2 2C CA 03 41
+53 4D B2 40 B0 CE DA 1D E0 3F AC CC 06 45 4E 44
+41 53 4D 00 87 12 B4 CC F4 CE 2A C2 00 00 05 43
+4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53
+C6 1D B2 43 BE 1D 30 40 E0 CE 00 00 05 4C 4F 32
+48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A C2
+02 00 A2 52 C6 1D ED 3F 1A CB 85 48 49 32 4C 4F
+87 12 A0 C8 4A CD B0 C8 E0 CA D2 CE AC CE 2A C2
+1A CD 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
+A2 52 C6 1D BE 40 40 C4 00 00 2E 53 30 4D 5E CC
+84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40
+3C C4 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 C5
+84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D
+9C CC 85 42 45 47 49 4E 30 40 A0 C8 70 CD 85 55
+4E 54 49 4C 39 40 40 C4 A2 52 C6 1D 1A 42 C6 1D
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE CC 85 41
+47 41 49 4E 39 40 3C C4 EF 3F 7A C6 85 57 48 49
+4C 45 87 12 36 CD 76 C2 2A C2 34 C6 86 52 45 50
+45 41 54 00 87 12 B4 CD 76 CD 2A C2 50 CD 82 44
+4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D
+BE 40 54 C4 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
+00 00 30 4D E2 C8 84 4C 4F 4F 50 00 39 40 76 C4
+A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
+1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A
+00 00 F6 3F 3E 4F 30 4D 90 C4 85 2B 4C 4F 4F 50
+39 40 64 C4 E5 3F 06 CE 04 4D 4F 56 45 00 0A 4E
 38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
 F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D FE CE
-0A 56 4F 43 41 42 55 4C 41 52 59 00 87 12 72 CD
-34 C2 10 00 34 C2 00 00 3C C5 34 C2 00 00 C8 C9
-5E C5 0A D0 F2 C4 34 C2 C8 1D 44 C2 F2 C2 C8 C9
-FA C2 8A CD 34 C2 CA 1D FA C2 2A C2 AE CB 05 46
-4F 52 54 48 84 12 24 D0 8E D0 C2 D3 CC D0 2E D0
-74 CE 7C CF F8 D1 BE D0 8E D2 A8 D2 D0 CE 34 D3
-00 00 CC D1 D8 CB AC CD 00 00 F0 CE 09 41 53 53
-45 4D 42 4C 45 52 84 12 24 D0 C2 D9 2A DA 76 D9
-94 DA 3C D9 B8 DA 68 D6 00 00 32 D9 E2 D9 94 D9
-D2 D9 78 D7 00 00 00 00 C6 DA 58 D0 5C D0 04 41
-4C 53 4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D
-9D 3F 3C CC 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 39 40 CC 1D 38 40 CA 1D 8A 3F 9E C7 04 4F
-4E 4C 59 00 82 43 CC 1D 30 4D 20 CF 0B 44 45 46
-49 4E 49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D
-C4 CE 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
-39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
-19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
-30 4D BA CC 86 5B 54 48 45 4E 5D 00 30 4D 14 D1
-86 5B 45 4C 53 45 5D 00 87 12 34 C2 00 00 36 C3
-B0 C3 B6 C7 1C CA 44 C2 28 C5 8E D1 8A C2 8A C2
-52 C7 06 5B 54 48 45 4E 5D 00 EA D0 32 C5 5C D1
-36 C7 40 C3 54 C2 32 C5 30 D1 2A C2 8A C2 8A C2
-52 C7 06 5B 45 4C 53 45 5D 00 EA D0 32 C5 7C D1
-36 C7 40 C3 54 C2 32 C5 2E D1 2A C2 52 C7 04 5B
-49 46 5D 00 EA D0 32 C5 30 D1 24 C5 2E D1 36 C7
-52 C7 05 0D 0A 6B 6F 20 14 C7 92 C6 2A CA 24 C5
-30 D1 20 D1 84 5B 49 46 5D 00 0E 93 3E 4F BC 27
-30 4D A4 D1 89 5B 44 45 46 49 4E 45 44 5D 87 12
-B0 C3 B6 C7 0E C8 6C C2 2A C2 B4 D1 8B 5B 55 4E
-44 45 46 49 4E 45 44 5D 87 12 B0 C3 B6 C7 0E C8
-6C C2 64 C3 2A C2 E8 D1 3D 41 B2 4E 0E 18 A2 4E
-0C 18 3E 4F 44 3C B8 CF 06 4D 41 52 4B 45 52 00
-B0 12 C0 CC BA 40 84 12 FC FF BA 40 E6 D1 FE FF
-9A 42 C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D
-30 40 0A CD 34 D0 C4 D0 D8 D0 2C D2 3A 4E 82 4A
-C8 1D 2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49
-29 83 18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83
-F6 23 2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D A4 D0
-09 50 57 52 5F 53 54 41 54 45 84 12 24 D2 8A D0
-D8 DA 0E CF 09 52 53 54 5F 53 54 41 54 45 92 42
-0E 18 6E D2 92 42 0C 18 70 D2 EF 3F 60 D2 08 50
-57 52 5F 48 45 52 45 00 92 42 C8 1D 6E D2 92 42
-C6 1D 70 D2 30 4D 74 D2 08 52 53 54 5F 48 45 52
-45 00 92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F
-F0 CF 04 57 49 50 45 00 39 40 10 00 29 83 B9 43
-80 FF FC 23 B2 40 26 C6 24 C6 B2 40 3E D3 3C D3
-B2 40 8A D0 0E 18 B2 40 D8 DA 0C 18 30 12 7E D2
-B2 40 8C C6 8A C6 B2 40 46 C7 44 C7 B2 40 A0 C5
-9E C5 B2 40 18 00 0A 18 37 40 1A C2 36 40 BC C2
-35 40 0E C2 34 40 00 C2 39 40 10 00 29 83 89 43
-E0 1D FC 23 B2 40 0A 00 DC 1D B2 40 20 00 B4 1D
-30 41 C2 D2 04 57 41 52 4D 00 30 40 3E D3 3D 40
-72 D3 92 C3 30 01 1E 42 08 18 0E 93 11 24 D2 B3
-01 02 02 20 3E E3 1E 53 F2 D0 03 00 0D 02 3E 90
-0A 00 B2 27 3E 90 16 00 AF 2F 2E 93 7E 27 87 2F
-30 4D 52 C7 06 0D 1B 5B 37 6D 23 00 14 C7 E2 C4
-52 C7 1F 46 61 73 74 46 6F 72 74 68 20 56 33 30
-30 20 28 43 29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
-73 20 14 C7 34 C2 80 FF F2 C4 28 C3 D2 C4 52 C7
-0B 62 79 74 65 73 20 66 72 65 65 20 24 C5 8A CB
-E2 D0 04 43 4F 4C 44 00 92 B3 CA 05 FD 23 B2 40
-04 A5 20 01 92 D3 30 01 B2 40 88 5A 5C 01 B2 40
-EF 7F 06 02 B2 43 02 02 E2 D2 05 02 B2 40 08 FF
-02 02 B2 D0 08 FF 06 02 B2 D0 F0 00 04 02 F2 40
-F0 00 22 03 F2 D0 F0 00 26 03 F2 D0 0F 00 24 03
-F2 40 A5 00 61 01 82 43 66 01 39 40 80 00 B2 40
-33 00 64 01 D2 43 61 01 92 D2 9E 01 08 18 38 40
-59 14 18 83 FE 23 19 83 FA 23 B2 D2 B0 01 92 C3
-B0 01 F2 D0 10 00 2A 03 F2 C0 40 00 A1 04 39 40
-00 04 29 83 89 43 00 1C FC 23 39 40 32 00 29 83
-B9 40 D4 D3 CE FF FB 23 B2 40 2C C6 F0 FF B2 40
-81 00 C0 05 92 42 02 18 C6 05 92 42 04 18 C8 05
-92 C3 C0 05 92 D3 DA 05 3F 40 80 1C 31 40 E0 1C
-30 12 3A D3 36 3F 38 40 C0 1D 39 48 2A 48 09 5A
-1A 52 C4 1D 09 9A 03 24 7E 9A FC 27 1A 83 0E 4A
-2A 88 82 4A C4 1D 30 4D 1C 15 B0 12 2A C2 B6 C7
-0E C8 32 C5 CE D4 CA C8 28 C5 BE CB F0 D4 D0 D4
-29 4E 39 90 86 12 02 20 2E 53 0A 3C 39 90 85 12
-03 20 1E 4E 02 00 04 3C 39 90 84 12 01 20 2E 52
-1B 17 30 41 3E 40 28 00 B0 12 B8 D4 19 42 C6 1D
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 C6
+CA 1D F2 C2 2A C2 84 12 7E CE AE CD 50 D1 DE CD
+BE CA 32 CD 3A CE 64 D2 64 C6 66 CF 80 CF 8E CD
+00 D0 00 00 36 D2 E8 CA 78 CC 00 00 84 12 7E CE
+82 D7 E4 D7 36 D7 58 D8 FC D6 00 00 2C D4 00 00
+F2 D6 A2 D7 54 D7 92 D7 3C D5 00 00 00 00 34 D8
+AA CE 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D C6 3F
+3A 40 0E 00 39 40 CC 1D 38 40 CA 1D B9 3F 82 43
+CC 1D 30 4D 92 42 CA 1D DA 1D 30 4D 86 CE EE CE
+F4 CE 04 CF 3A 4E 82 4A C8 1D 2E 4E 82 4E C6 1D
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 CB 09 50 57 52 5F 53 54 41
+54 45 84 12 FC CE D0 CE 6A D8 CC CD 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 CF 92 42 0C 18
+48 CF EF 3F 38 CF 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 1D 46 CF 92 42 C6 1D 48 CF 30 4D 4C CF
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 1D 0E 18
+92 42 C6 1D 0C 18 EC 3F BC CD 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 C4
+DE C4 B2 40 0A D0 08 D0 B2 40 D0 CE 0E 18 B2 40
+6A D8 0C 18 30 12 56 CF B2 40 86 C5 84 C5 B2 40
+08 C6 06 C6 B2 40 98 C4 96 C4 B2 40 18 00 0A 18
+37 40 1A C2 36 40 92 C2 35 40 0E C2 34 40 00 C2
+B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41 9A CF
+04 57 41 52 4D 00 30 40 0A D0 3D 40 3E D0 92 C3
+30 01 1E 42 08 18 0E 93 11 24 D2 B3 01 02 02 20
+3E E3 1E 53 F2 D0 03 00 0D 02 3E 90 0A 00 B8 27
+3E 90 16 00 B5 2F 2E 93 84 27 8D 2F 30 4D 1E C6
+06 0D 1B 5B 37 6D 23 00 D6 C5 34 C4 1E C6 19 46
+61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54
+68 6F 6F 72 65 6E 73 20 D6 C5 14 C6 30 FF A0 C8
+B8 C2 24 C4 1E C6 0A 62 79 74 65 73 20 66 72 65
+65 00 3C C4 9A CA 82 CD 04 43 4F 4C 44 00 92 B3
+CA 05 FD 23 B2 40 04 A5 20 01 3E D0 92 D3 30 01
+B2 40 88 5A 5C 01 B2 43 06 02 B2 40 EF 7F 02 02
+E2 D2 05 02 B2 43 26 02 B2 D0 08 FF 22 02 F2 D3
+26 03 F2 40 F0 00 22 03 F2 40 A5 00 61 01 82 43
+66 01 39 40 80 00 B2 40 33 00 64 01 D2 43 61 01
+92 D2 9E 01 08 18 38 40 59 14 18 83 FE 23 19 83
+FA 23 B2 D2 B0 01 92 C3 B0 01 F2 D0 10 00 2A 03
+F2 C0 40 00 A1 04 39 40 00 04 29 83 89 43 00 1C
+FC 23 39 40 32 00 29 83 B9 40 9C D0 CE FF FB 23
+B2 40 26 C5 F0 FF B2 40 81 00 C0 05 92 42 02 18
+C6 05 92 42 04 18 C8 05 92 C3 C0 05 92 D3 DA 05
+3F 40 80 1C 31 40 E0 1C 30 12 06 D0 46 3F 88 D0
+07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F
+0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53
+F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D
+B2 CB 86 5B 54 48 45 4E 5D 00 30 4D 82 D1 86 5B
+45 4C 53 45 5D 00 87 12 14 C6 00 00 C6 C2 42 C9
+80 C6 24 C9 34 C2 40 C4 F8 D1 44 C2 1E C6 06 5B
+54 48 45 4E 5D 00 58 D1 4A C4 C8 D1 F8 C5 D0 C2
+58 C2 4A C4 9E D1 2A C2 44 C2 1E C6 06 5B 45 4C
+53 45 5D 00 58 D1 4A C4 E6 D1 F8 C5 D0 C2 58 C2
+4A C4 9C D1 2A C2 1E C6 04 5B 49 46 5D 00 58 D1
+4A C4 9E D1 3C C4 9C D1 F8 C5 1E C6 05 0D 0A 6B
+6F 20 D6 C5 8C C5 32 C9 3C C4 9E D1 8E D1 84 5B
+49 46 5D 00 0E 93 3E 4F BE 27 30 4D 0E D2 89 5B
+44 45 46 49 4E 45 44 5D 87 12 42 C9 80 C6 EE C6
+6A C2 2A C2 1E D2 8B 5B 55 4E 44 45 46 49 4E 45
+44 5D 87 12 42 C9 80 C6 EE C6 6A C2 00 C3 2A C2
+52 D2 3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F 30 40
+56 CF 48 CE 06 4D 41 52 4B 45 52 00 B0 12 B8 CB
+BA 40 84 12 FC FF BA 40 50 D2 FE FF 9A 42 C8 1D
+00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40 00 CC
+1C 15 B0 12 2A C2 80 C6 EE C6 4A C4 A6 D2 AA C7
+40 C4 CE CA C0 D2 A8 D2 39 4E 39 80 86 12 08 24
+19 53 02 20 2E 4E 04 3C 2E 53 19 53 01 24 2E 82
+1B 17 30 41 3E 40 28 00 B0 12 90 D2 19 42 C6 1D
 A2 53 C6 1D 89 4E 00 00 3E 40 29 00 1C 15 12 12
-C4 1D 92 53 C4 1D B0 12 2A C2 B6 C7 CA C8 28 C5
-2E D5 24 D5 21 53 3E 90 10 00 83 2D E1 2B 30 D5
-B2 41 C4 1D DD 3F 87 12 B0 C3 96 D4 3E D5 0C 43
+C4 1D 92 53 C4 1D B0 12 2A C2 80 C6 AA C7 40 C4
+FE D2 F4 D2 21 53 3E 90 10 00 7D 2D E1 2B 00 D3
+B2 41 C4 1D DD 3F 87 12 42 C9 74 C6 0E D3 0C 43
 1B 42 C6 1D A2 53 C6 1D 6A 4E 3E 4F 7A 90 23 00
-2D 20 92 53 C4 1D B0 12 B8 D4 0E 93 03 20 3C 40
-00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C 2E 93
-03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40 20 02
-12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93 03 20
-3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 1D A2 53
-C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00
-07 20 3C 40 10 02 92 53 C4 1D B0 12 B8 D4 ED 3F
-7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12
-0C D5 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 0C D5
-92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E
-DA 3F B0 12 0C D5 FA 23 3C 50 10 00 B0 12 F4 D4
-EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 87 12 B0 C3
-96 D4 14 D6 FE 90 26 00 00 00 3E 40 20 00 03 20
-3C 50 82 00 C8 3F B0 12 0C D5 E1 23 3C 50 80 00
-B0 12 F4 D4 DC 3F 1C C6 04 52 45 54 49 00 87 12
-34 C2 00 13 C8 C9 2A C2 34 C2 2C 00 36 D5 0C D6
-52 D6 2E 4E 0E DC 09 4B A4 3F 3E CE 03 4D 4F 56
-84 12 48 D6 00 40 5C D6 05 4D 4F 56 2E 42 84 12
-48 D6 40 40 00 00 03 41 44 44 84 12 48 D6 00 50
-76 D6 05 41 44 44 2E 42 84 12 48 D6 40 50 82 D6
-04 41 44 44 43 00 84 12 48 D6 00 60 90 D6 06 41
-44 44 43 2E 42 00 84 12 48 D6 40 60 38 D6 04 53
-55 42 43 00 84 12 48 D6 00 70 AE D6 06 53 55 42
-43 2E 42 00 84 12 48 D6 40 70 BC D6 03 53 55 42
-84 12 48 D6 00 80 CC D6 05 53 55 42 2E 42 84 12
-48 D6 40 80 20 CE 03 43 4D 50 84 12 48 D6 00 90
-E6 D6 05 43 4D 50 2E 42 84 12 48 D6 40 90 0E CE
-04 44 41 44 44 00 84 12 48 D6 00 A0 00 D7 06 44
-41 44 44 2E 42 00 84 12 48 D6 40 A0 F2 D6 03 42
-49 54 84 12 48 D6 00 B0 1E D7 05 42 49 54 2E 42
-84 12 48 D6 40 B0 2A D7 03 42 49 43 84 12 48 D6
-00 C0 38 D7 05 42 49 43 2E 42 84 12 48 D6 40 C0
-44 D7 03 42 49 53 84 12 48 D6 00 D0 52 D7 05 42
-49 53 2E 42 84 12 48 D6 40 D0 00 00 03 58 4F 52
-84 12 48 D6 00 E0 6C D7 05 58 4F 52 2E 42 84 12
-48 D6 40 E0 9E D6 03 41 4E 44 84 12 48 D6 00 F0
-86 D7 05 41 4E 44 2E 42 84 12 48 D6 40 F0 B0 C3
-36 D5 A4 D7 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F D8 D6 03 52 52 43 84 12 9E D7 00 10
-B6 D7 05 52 52 43 2E 42 84 12 9E D7 40 10 C2 D7
-04 53 57 50 42 00 84 12 9E D7 80 10 D0 D7 03 52
-52 41 84 12 9E D7 00 11 DE D7 05 52 52 41 2E 42
-84 12 9E D7 40 11 EA D7 03 53 58 54 84 12 9E D7
-80 11 00 00 04 50 55 53 48 00 84 12 9E D7 00 12
-04 D8 06 50 55 53 48 2E 42 00 84 12 9E D7 40 12
-5E D7 04 43 41 4C 4C 00 84 12 9E D7 80 12 1A 53
-0E 4A 87 12 E2 C4 52 C7 0D 6F 75 74 20 6F 66 20
-62 6F 75 6E 64 73 3A CB B0 C3 96 D4 4E D8 92 53
-C4 1D 3E 40 2C 00 B0 12 2A C2 B6 C7 CA C8 28 C5
-BE CB 02 D6 66 D8 0A 4E 3E 4F 1A 83 E0 33 29 4E
-59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
-10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06
-8F 3F F8 D7 04 52 52 43 4D 00 84 12 48 D8 50 00
-94 D8 04 52 52 41 4D 00 84 12 48 D8 50 01 A2 D8
-04 52 4C 41 4D 00 84 12 48 D8 50 02 B0 D8 04 52
-52 55 4D 00 84 12 48 D8 50 03 12 D8 05 50 55 53
-48 4D 84 12 48 D8 00 15 CC D8 04 50 4F 50 4D 00
-84 12 48 D8 00 17 85 12 00 3C BE D8 03 53 3E 3D
-85 12 00 38 EC D8 02 53 3C 00 85 12 00 34 DA D8
-03 30 3E 3D 85 12 00 30 00 D9 02 30 3C 00 85 12
-00 30 00 00 02 55 3C 00 85 12 00 2C 14 D9 03 55
-3E 3D 85 12 00 28 0A D9 03 30 3C 3E 85 12 00 24
-28 D9 02 30 3D 00 85 12 00 20 00 00 02 49 46 00
+27 20 92 53 C4 1D B0 12 90 D2 3C 40 00 03 0E 93
+1C 24 3C 40 10 03 1E 93 18 24 3C 40 20 03 2E 93
+14 24 3C 40 20 02 2E 92 10 24 3C 40 30 02 3E 92
+0C 24 3C 40 30 03 3E 93 08 24 3C 40 30 00 19 42
+C6 1D A2 53 C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D
+7A 90 26 00 07 20 3C 40 10 02 92 53 C4 1D B0 12
+90 D2 ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53
+C4 1D B0 12 DC D2 0C 20 3C 50 10 00 3E 40 2B 00
+B0 12 DC D2 92 92 C0 1D C4 1D 02 24 92 53 C4 1D
+8E 10 0C 5E DA 3F B0 12 DC D2 FA 23 3C 50 10 00
+B0 12 C4 D2 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D
+87 12 42 C9 74 C6 D8 D3 FE 90 26 00 00 00 3E 40
+20 00 03 20 3C 50 82 00 C8 3F B0 12 DC D2 E1 23
+3C 50 80 00 B0 12 C4 D2 DC 3F D6 C4 04 52 45 54
+49 00 87 12 14 C6 00 13 B0 C8 2A C2 14 C6 2C 00
+06 D3 D0 D3 16 D4 09 4B 2E 4E 0E DC A4 3F FC CC
+03 4D 4F 56 84 12 0C D4 00 40 20 D4 05 4D 4F 56
+2E 42 84 12 0C D4 40 40 00 00 03 41 44 44 84 12
+0C D4 00 50 3A D4 05 41 44 44 2E 42 84 12 0C D4
+40 50 46 D4 04 41 44 44 43 00 84 12 0C D4 00 60
+54 D4 06 41 44 44 43 2E 42 00 84 12 0C D4 40 60
+FC D3 04 53 55 42 43 00 84 12 0C D4 00 70 72 D4
+06 53 55 42 43 2E 42 00 84 12 0C D4 40 70 80 D4
+03 53 55 42 84 12 0C D4 00 80 90 D4 05 53 55 42
+2E 42 84 12 0C D4 40 80 DE CC 03 43 4D 50 84 12
+0C D4 00 90 AA D4 05 43 4D 50 2E 42 84 12 0C D4
+40 90 CC CC 04 44 41 44 44 00 84 12 0C D4 00 A0
+C4 D4 06 44 41 44 44 2E 42 00 84 12 0C D4 40 A0
+B6 D4 03 42 49 54 84 12 0C D4 00 B0 E2 D4 05 42
+49 54 2E 42 84 12 0C D4 40 B0 EE D4 03 42 49 43
+84 12 0C D4 00 C0 FC D4 05 42 49 43 2E 42 84 12
+0C D4 40 C0 08 D5 03 42 49 53 84 12 0C D4 00 D0
+16 D5 05 42 49 53 2E 42 84 12 0C D4 40 D0 00 00
+03 58 4F 52 84 12 0C D4 00 E0 30 D5 05 58 4F 52
+2E 42 84 12 0C D4 40 E0 62 D4 03 41 4E 44 84 12
+0C D4 00 F0 4A D5 05 41 4E 44 2E 42 84 12 0C D4
+40 F0 42 C9 06 D3 68 D5 0A 4C 3C F0 70 00 8A 10
+3A F0 0F 00 0C DA 4F 3F 9C D4 03 52 52 43 84 12
+62 D5 00 10 7A D5 05 52 52 43 2E 42 84 12 62 D5
+40 10 86 D5 04 53 57 50 42 00 84 12 62 D5 80 10
+94 D5 03 52 52 41 84 12 62 D5 00 11 A2 D5 05 52
+52 41 2E 42 84 12 62 D5 40 11 AE D5 03 53 58 54
+84 12 62 D5 80 11 00 00 04 50 55 53 48 00 84 12
+62 D5 00 12 C8 D5 06 50 55 53 48 2E 42 00 84 12
+62 D5 40 12 22 D5 04 43 41 4C 4C 00 84 12 62 D5
+80 12 1A 53 0E 4A 87 12 34 C4 1E C6 0D 6F 75 74
+20 6F 66 20 62 6F 75 6E 64 73 4C CA 42 C9 74 C6
+12 D6 92 53 C4 1D 3E 40 2C 00 B0 12 2A C2 80 C6
+AA C7 40 C4 CE CA C6 D3 2A D6 0A 4E 3E 4F 1A 83
+E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F
+8A 10 5A 06 8F 3F BC D5 04 52 52 43 4D 00 84 12
+0C D6 50 00 58 D6 04 52 52 41 4D 00 84 12 0C D6
+50 01 66 D6 04 52 4C 41 4D 00 84 12 0C D6 50 02
+74 D6 04 52 52 55 4D 00 84 12 0C D6 50 03 D6 D5
+05 50 55 53 48 4D 84 12 0C D6 00 15 90 D6 04 50
+4F 50 4D 00 84 12 0C D6 00 17 82 D6 03 53 3E 3D
+85 12 00 38 AC D6 02 53 3C 00 85 12 00 34 9E D6
+03 30 3E 3D 85 12 00 30 C0 D6 02 30 3C 00 85 12
+00 30 00 00 02 55 3C 00 85 12 00 2C D4 D6 03 55
+3E 3D 85 12 00 28 CA D6 03 30 3C 3E 85 12 00 24
+E8 D6 02 30 3D 00 85 12 00 20 00 00 02 49 46 00
 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 0E 4A 30 4D
-1E D9 04 54 48 45 4E 00 1A 42 C6 1D 08 4E 3E 4F
-09 48 29 53 0A 89 0A 11 3A 90 00 02 61 2F 88 DA
-00 00 30 4D 0E D7 04 45 4C 53 45 00 1A 42 C6 1D
+DE D6 04 54 48 45 4E 00 1A 42 C6 1D 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 63 2F 88 DA
+00 00 30 4D D2 D4 04 45 4C 53 45 00 1A 42 C6 1D
 BA 40 00 3C 00 00 A2 53 C6 1D 2F 83 8F 4A 00 00
-E3 3F 52 D9 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
-19 42 C6 1D 2A 83 0A 89 0A 11 3A 90 00 FE 40 3B
+E3 3F 12 D7 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C6 1D 2A 83 0A 89 0A 11 3A 90 00 FE 42 3B
 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D 30 4D
-92 D7 05 41 47 41 49 4E 87 12 E6 D8 9A D9 2A C2
-00 00 05 57 48 49 4C 45 87 12 40 D9 78 C2 2A C2
-F6 D8 06 52 45 50 45 41 54 00 87 12 E6 D8 9A D9
-58 D9 2A C2 F6 D9 3D 41 2E 4E 08 4E 3E 4F 2A 48
-0A 93 88 43 00 00 CA 23 98 42 C6 1D 00 00 30 4D
-22 D8 03 42 57 31 84 12 F4 D9 E0 1D 12 DA 03 42
-57 32 84 12 F4 D9 E2 1D 1E DA 03 42 57 33 84 12
-F4 D9 E4 1D 36 DA 3D 41 1A 42 C6 1D 2E 4E 28 4E
-08 93 8E 43 00 00 8B 23 BA 4F 00 00 A2 53 C6 1D
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12
-34 DA E6 1D 5A DA 03 46 57 32 84 12 34 DA E8 1D
-66 DA 03 46 57 33 84 12 34 DA EA 1D 3E 90 00 30
-07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0 00 08
-30 4D 72 DA 04 47 4F 54 4F 00 87 12 E6 D8 B0 CB
-BE C9 2A C2 00 00 05 3F 47 4F 54 4F 87 12 7C DA
-B0 CB BE C9 2A C2 00 00 03 4A 4D 50 87 12 B0 CB
-C8 D9 2A C2 A6 DA 04 3F 4A 4D 50 00 87 12 7C DA
-B0 CB 78 C2 9A D9 2A C2
+56 D5 05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 05 57 48 49 4C 45 87 12 00 D7 76 C2 2A C2
+B6 D6 06 52 45 50 45 41 54 00 87 12 88 D7 18 D7
+2A C2 B4 D7 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D
+CD 2F 98 42 C6 1D 00 00 30 4D E6 D5 03 42 57 31
+84 12 B2 D7 00 00 CC D7 03 42 57 32 84 12 B2 D7
+00 00 D8 D7 03 42 57 33 84 12 B2 D7 00 00 F0 D7
+3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D 90 2B BA 4F
+00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00
+03 46 57 31 84 12 EE D7 00 00 10 D8 03 46 57 32
+84 12 EE D7 00 00 1C D8 03 46 57 33 84 12 EE D7
+00 00 00 00 05 3F 47 4F 54 4F 3E 90 00 30 07 24
+3E E0 00 04 3E B0 00 10 02 24 3E E0 00 08 87 12
+C0 CA DA C8 2A C2 28 D8 04 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C F2 3F
 @FFFE
-D4 D3
+9C D0
 q
index 86da61b..de84383 100644 (file)
 @1800
-10 00 08 00 A1 F7 80 3E 05 00 18 00 58 64 98 52
-2C 01 7F B0 00 48 12 48
+10 00 08 00 A1 F7 80 3E 05 00 18 00 B4 5B D0 50
+2D 01 6B B4 B6 46 C8 46
 @4400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 44
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 44 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 44 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 44 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 44 02 3E 52 00
-0E 12 3E 4F 30 4D 96 44 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 44 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 44 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 44 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 45 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 44 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 45 02 31 2D 00
-1E 83 30 4D D8 44 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 45
-02 30 3D 00 1E 83 0E 7E 30 4D 60 45 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 45 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 44 01 3E 3E 8F F4 3B EB 37 0E 45 02 42 4C 00
-85 12 20 00 AC 45 04 42 41 53 45 00 85 12 DC 1D
-C8 44 05 53 54 41 54 45 85 12 BE 1D 96 45 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 45 06 55 4D 2F
-4D 4F 44 00 30 12 62 44 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 44 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 45
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 45 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 46
-02 23 53 00 87 12 32 46 6A 46 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 46 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 45 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 45
-02 44 2E 00 87 12 D2 45 44 44 B0 44 4C 45 64 46
-BC 44 A2 46 7E 46 22 49 EA 48 2A 44 DC 45 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 44
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 46 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 44
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A 46
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 46 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 46 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 45 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 47 03 4B 45 59 30 40 A0 47
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 00 48 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 12 48 30 4D 00 47
-06 41 43 43 45 50 54 00 30 40 CC 47 3C 40 6E 48
-3B 40 38 48 2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00
-3C 40 20 00 3D 40 62 48 92 B3 DC 05 05 24 18 42
-CC 05 38 90 0A 00 04 20 21 53 39 40 26 48 4D 15
-A2 B3 DC 05 FD 27 B2 40 11 00 CE 05 E2 C3 23 02
-30 41 B2 40 13 00 CE 05 E2 D3 23 02 30 41 00 00
-05 53 4C 45 45 50 30 40 2A 48 12 D2 0A 18 FB 3F
-21 52 3A 17 58 42 CC 05 48 9C 08 2C 48 9B E9 27
-78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24
-CE 48 00 00 1E 53 A2 B3 DC 05 FD 27 82 48 CE 05
-30 4D 64 48 2D 83 92 B3 DC 05 E4 23 FC 27 82 93
-DE 1D 02 24 92 53 DE 1D 3E 8F 3D 41 B2 40 18 00
-0A 18 30 4D B0 46 04 45 4D 49 54 00 30 40 90 48
-08 4E 3E 4F E0 3F 10 47 03 43 49 42 85 12 3C 1D
-3F 80 06 00 8F 4E 04 00 3E 40 54 00 9F 42 9E 48
-00 00 AF 4F 02 00 88 3F 86 48 04 45 43 48 4F 00
-B2 40 82 48 5C 48 82 43 DE 1D 30 4D E0 46 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 5C 48 92 43 DE 1D
-30 4D 9C 46 05 53 50 41 43 45 2F 83 8F 4E 00 00
-3E 40 20 00 CB 3F E4 48 06 53 50 41 43 45 53 00
-0E 93 09 24 0D 12 3D 40 0C 49 EF 3F 0E 49 2D 83
-1E 83 EB 23 3D 41 3E 4F 30 4D 66 47 04 54 59 50
-45 00 0E 93 0F 24 1E 15 3D 40 38 49 28 4F 7E 48
-8F 48 00 00 2F 83 AA 3F 3A 49 2D 83 91 83 02 00
-F5 23 1D 17 2F 53 3E 4F 30 4D 98 48 02 43 52 00
-30 40 54 49 87 12 60 49 02 0D 0A 00 22 49 2A 44
-2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
-0D 63 30 4D F8 48 82 53 22 00 82 43 B4 1D 87 12
-34 44 60 49 D6 4B 34 44 22 00 C4 49 8E 49 3D 41
-B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D 3E 4F
-92 B3 C6 1D A2 63 C6 1D 30 4D CE 48 82 2E 22 00
-87 12 7A 49 34 44 22 49 D6 4B 2A 44 00 00 04 57
-4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A 3A 5C
-28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40 60 00
-C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24 18 53
-4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D F0 3F
-1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E CE 48
-00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83 0C 4E
-65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93 1E 24
-58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E FE FF
-0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23 0A 4C
-FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
-0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C 00 00
-35 40 0E 44 34 40 00 44 30 4D A2 45 07 3E 4E 55
-4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42 DC 1D
-6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80 07 00
-7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49 D0 04
-82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42 E6 04
-09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00 8F 48
-02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43 2D 15
-3D 40 1E 4B 09 43 08 43 3F 82 8F 4E 06 00 0C 4E
-7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43 02 00
-E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53 04 24
-3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F 20 4B
-2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02 7A 90
-F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43 8F 49
-02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00 79 90
-0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28 09 9B
-08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 45 2A 17
-E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A 4E 93
-2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02 3F 50
-06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00 BF 4F
-00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3 00 00
-9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20 2F 53
-30 4D BA 48 07 45 58 45 43 55 54 45 0A 4E 3E 4F
-00 4A 26 45 01 2C 1A 42 C6 1D A2 53 C6 1D 8A 4E
-00 00 3E 4F 30 4D D4 4B 87 4C 49 54 45 52 41 4C
-82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D BA 40
-34 44 00 00 8A 4E 02 00 3E 4F 32 B0 00 02 32 C0
-00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49 EB 3F
-30 4D 4C 49 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F C2 1D
-3E 4F 82 43 C4 1D 30 4D 87 12 38 4C B0 45 C4 49
-52 4C 3D 40 5A 4C E2 22 5D 3E 5C 4C 0A 4E 3E 4F
-3D 40 72 4C 39 27 3D 40 4C 4C 1A E2 BE 1D B3 27
-AD 23 74 4C 3E 4F 3D 40 4C 4C BA 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 3E 4F CD 3F
-C4 4B 08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D
-3C 49 3B 49 3A 49 3D 15 B0 12 2A 44 48 4C B0 4C
-B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D
-6C 45 04 51 55 49 54 00 82 43 08 18 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44 50 49
-A0 48 EA 48 48 4C DE 44 70 45 60 49 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 3C 4D 34 44 30 FF
-F2 46 8A 45 60 49 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 3C 4D 24 47 DE 4C C0 47 05 41 42 4F 52 54
-3F 40 80 1C D1 3F 1A 4D 86 41 42 4F 52 54 22 00
-87 12 7A 49 34 44 3C 4D D6 4B 2A 44 8F 93 02 00
-03 20 2F 52 3E 4F 30 4D B0 12 FE 54 B0 12 00 48
-92 C3 DC 05 38 40 A0 AA 39 42 09 59 03 43 19 83
-FD 23 18 83 F9 23 92 B3 DC 05 F2 23 87 12 78 54
-34 44 DE 1D F2 44 C0 48 60 49 04 1B 5B 37 6D 00
-22 49 54 44 28 47 98 4D 50 49 60 49 05 6C 69 6E
-65 3A 22 49 40 45 D2 46 22 49 60 49 04 1B 5B 30
-6D 00 22 49 20 4D 00 00 83 5B 27 5D 87 12 BE 4D
-34 44 34 44 D6 4B D6 4B 2A 44 16 4A 01 27 87 12
-B0 45 C4 49 1C 4A 28 47 CC 4D 2A 44 7C 4C CE 45
-81 5C 92 42 C0 1D C4 1D 30 4D A8 4D 81 5B 82 43
-BE 1D 30 4D D0 4D 01 5D B2 43 BE 1D 30 4D BE 4F
-02 00 3E 4F 30 4D 72 47 82 49 53 00 87 12 C8 45
-F2 44 28 47 10 4E AC 4D 34 44 EE 4D D6 4B 2A 44
-BE 4D EE 4D 2A 44 F8 4D 09 49 4D 4D 45 44 49 41
-54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D 76 49
-87 52 45 43 55 52 53 45 19 42 C6 1D 99 42 BA 1D
-00 00 A2 53 C6 1D 30 4D C2 4C 88 50 4F 53 54 50
-4F 4E 45 00 87 12 B0 45 C4 49 1C 4A 54 44 28 47
-CC 4D 70 45 28 47 74 4E 34 44 34 44 D6 4B D6 4B
-34 44 D6 4B D6 4B 2A 44 DC 4D 81 3B 82 93 BE 1D
-A8 27 87 12 34 44 2A 44 D6 4B 12 4F DE 4D 2A 44
-7A 4E 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E 00 00
-1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02 B0 12
-FE 4E BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D
-82 4F BC 1D 30 4D 92 4E 01 3A 30 12 B2 4E 87 12
-A0 49 B0 45 C4 49 D8 4E 3D 41 08 4E 7A 4E 5A D3
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 44
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 44
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 44
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 44 02 3E 52 00 0E 12 3E 4F 30 4D 70 44 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 44 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 44 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 44
+01 21 BE 4F 00 00 3E 4F 30 4D CC 44 02 30 3D 00
+1E 83 0E 7E 30 4D FC 44 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 45 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 45 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 45 02 23 53 00 87 12 88 45 C0 45
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 45
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 44 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 45 34 44 86 44 D4 44 BA 45
+92 44 F8 45 D4 45 D6 47 42 4B 82 47 2A 44 22 45
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 45 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 46 18 42 CC 05 2F 83 8F 4E
+00 00 B0 12 B6 46 92 B3 DC 05 FD 27 1E 42 CC 05
+B0 12 C8 46 30 4D A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C3 23 02 30 41 B2 40 13 00 CE 05 E2 D3
+23 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 46
+B0 12 B6 46 12 D2 0A 18 F9 3F F0 44 06 41 43 43
+45 50 54 00 3C 40 64 47 3B 40 2E 47 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 47
+92 B3 DC 05 05 24 18 42 CC 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 CC 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 DC 05
+FD 27 82 48 CE 05 30 4D 5A 47 2D 83 92 B3 DC 05
+E4 23 FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 44 04 45 4D 49
+54 00 30 40 86 47 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
+02 00 A8 3F 7C 47 04 45 43 48 4F 00 B2 40 82 48
+52 47 82 43 DE 1D 30 4D 32 46 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 47 92 43 DE 1D 30 4D 20 46
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 47
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 47 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 45
+02 43 52 00 30 40 08 48 87 12 1E 48 02 0D 0A 00
+D6 47 2A 44 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 45 82 53 22 00 82 43 B4 1D 87 12 14 48
+1E 48 B0 4A 14 48 22 00 80 48 4C 48 B2 40 20 00
+B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41 3E 4F
+30 4D BA 47 82 2E 22 00 87 12 38 48 14 48 D6 47
+B0 4A 2A 44 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52 C4 1D
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D 3B 40
+60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
+18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D
+F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E
+CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
+0C 4E 65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
+FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
+00 00 35 40 0E 44 34 40 00 44 30 4D 82 44 07 3E
+4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
+DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
+07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
+D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 1D 0C 43 2D 15 3D 40 F4 49 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 49 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 45 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 46 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 44 01 2C
+1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D
+EC 46 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D
+A6 47 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 4A 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
+1A 42 C6 1D A2 52 C6 1D BA 40 14 48 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 48 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
+30 4D 85 12 20 00 87 12 32 4B 42 4B 80 48 50 4B
+3D 40 58 4B CC 22 82 3E 5A 4B 0A 4E 3E 4F 3D 40
+70 4B 23 27 3D 40 4A 4B 1A E2 BE 1D A1 27 B5 23
+72 4B 3E 4F 3D 40 4A 4B B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 4E CB 3F D2 4A
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 44 46 4B AE 4B B2 41
+C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D 85 12
+BE 1D 08 45 04 51 55 49 54 00 82 43 08 18 31 40
+E0 1C B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44
+04 48 8C 47 42 4B 82 47 46 4B A4 44 0C 45 1E 48
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 4C
+14 48 30 FF A0 4A 26 45 1E 48 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 4C 3C 46 E0 4B C2 4A 05 41
+42 4F 52 54 3F 40 80 1C D0 3F 1E 4C 86 41 42 4F
+52 54 22 00 87 12 38 48 14 48 40 4C B0 4A 2A 44
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 51
+B0 12 B6 46 92 C3 DC 05 38 40 A0 AA 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 DC 05 F3 23 87 12
+42 51 14 48 DE 1D EA 44 AC 47 1E 48 04 1B 5B 37
+6D 00 D6 47 58 44 40 46 9A 4C 04 48 1E 48 05 6C
+69 6E 65 3A D6 47 D0 44 24 46 D6 47 1E 48 04 1B
+5B 30 6D 00 D6 47 24 4C 00 00 83 5B 27 5D 87 12
+C0 4C 14 48 14 48 B0 4A B0 4A 2A 44 E8 48 01 27
+87 12 42 4B 80 48 EE 48 40 46 CE 4C 2A 44 7A 4B
+32 45 81 5C 92 42 C0 1D C4 1D 30 4D AA 4C 81 5B
+82 43 BE 1D 30 4D D2 4C 01 5D B2 43 BE 1D 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 4A 82 49 53 00 87 12
+BE 4B EA 44 40 46 12 4D AE 4C 14 48 F0 4C B0 4A
+2A 44 C0 4C F0 4C 2A 44 FA 4C 09 49 4D 4D 45 44
+49 41 54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D
+C4 4B 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 4B
+80 48 EE 48 58 44 40 46 CE 4C 0C 45 40 46 5C 4D
+14 48 14 48 B0 4A B0 4A 14 48 B0 4A B0 4A 2A 44
+DE 4C 81 3B 82 93 BE 1D B5 27 87 12 14 48 2A 44
+B0 4A FA 4D E0 4C 2A 44 62 4D 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 4D 2F 83 8F 4E 00 00 1E 42 C6 1D
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 30 4D
+7A 4D 01 3A 30 12 A0 4D 92 B3 C6 1D A2 63 C6 1D
+87 12 42 4B 80 48 C8 4D 3D 41 08 4E 7A 4E 5A D3
 5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E
-3E 4F BA 40 30 40 00 00 BA 40 C4 4E 02 00 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D
-30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D
-A8 49 FE FF 89 48 00 00 30 4D 87 12 60 49 0F 73
-74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 48 4D
-BE 49 08 56 41 52 49 41 42 4C 45 00 B0 12 CE 4E
-BA 40 86 12 FC FF E4 3F 24 4C 08 43 4F 4E 53 54
-41 4E 54 00 B0 12 CE 4E BA 40 85 12 FC FF 8A 4E
-FE FF 3E 4F D5 3F 5A 4F 06 43 52 45 41 54 45 00
-B0 12 CE 4E BA 40 85 12 FC FF 8A 4A FE FF C8 3F
-92 4C 05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12
-00 00 8A 4D 02 00 3D 41 30 4D 92 4F 05 44 45 46
-45 52 30 12 20 4F 8B 3F 7C 4A 05 3E 42 4F 44 59
-2E 52 30 4D 78 4F 04 43 4F 44 45 00 B0 12 CE 4E
-2A 82 82 4A C6 1D 87 12 C0 4E A2 52 74 52 2A 44
-C6 4F 07 43 4F 44 45 4E 4E 4D 87 12 9A 4E DE 4D
-D0 4F 2A 44 00 00 07 45 4E 44 43 4F 44 45 87 12
-BC 52 12 4F 2A 44 28 4D 03 41 53 4D 92 42 DA 1D
-EC 1D B2 40 78 52 DA 1D D9 3F F6 4F 06 45 4E 44
-41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00 05 43
+3E 4F 82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F
+BC 1D 2A 52 82 4A C6 1D 30 41 82 9F BC 1D 09 20
+18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 48 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 4C 90 4B 05 44 45 46 45 52
+B0 12 B8 4D BA 40 30 40 FC FF BA 40 AE 4D FE FF
+E3 3F 1E 4B 06 43 52 45 41 54 45 00 B0 12 B8 4D
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 4E 05 44
+4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 49 05 3E 42 4F 44 59 2E 52
+30 4D 44 4E 04 43 4F 44 45 00 B0 12 B8 4D A2 82
+C6 1D 87 12 D2 50 AC 50 2A 44 84 4E 07 43 4F 44
+45 4E 4E 4D B0 12 86 4D F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 50 FA 4D 2A 44 2C 4C 03 41
+53 4D B2 40 B0 50 DA 1D E0 3F AC 4E 06 45 4E 44
+41 53 4D 00 87 12 B4 4E F4 50 2A 44 00 00 05 43
 4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53
-C6 1D B2 43 BE 1D 30 40 BC 52 00 00 05 4C 4F 32
+C6 1D B2 43 BE 1D 30 40 E0 50 00 00 05 4C 4F 32
 48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A 44
-02 00 A2 52 C6 1D ED 3F 18 4E 85 48 49 32 4C 4F
-87 12 F2 46 9A 50 D6 4B DE 4D A2 52 74 52 2A 44
-6A 50 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
-A2 52 C6 1D BE 40 28 47 00 00 2E 53 30 4D AC 4F
+02 00 A2 52 C6 1D ED 3F 1A 4D 85 48 49 32 4C 4F
+87 12 A0 4A 4A 4F B0 4A E0 4C D2 50 AC 50 2A 44
+1A 4F 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
+A2 52 C6 1D BE 40 40 46 00 00 2E 53 30 4D 5E 4E
 84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40
-24 47 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D 1C 49
+3C 46 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 47
 84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D
-E2 4F 85 42 45 47 49 4E 30 40 F2 46 C0 50 85 55
-4E 54 49 4C 39 40 28 47 A2 52 C6 1D 1A 42 C6 1D
-8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D 08 50 85 41
-47 41 49 4E 39 40 24 47 EF 3F 42 4F 85 57 48 49
-4C 45 87 12 86 50 78 44 2A 44 30 4E 86 52 45 50
-45 41 54 00 87 12 04 51 C6 50 2A 44 A0 50 82 44
+9C 4E 85 42 45 47 49 4E 30 40 A0 4A 70 4F 85 55
+4E 54 49 4C 39 40 40 46 A2 52 C6 1D 1A 42 C6 1D
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE 4E 85 41
+47 41 49 4E 39 40 3C 46 EF 3F 7A 48 85 57 48 49
+4C 45 87 12 36 4F 76 44 2A 44 34 48 86 52 45 50
+45 41 54 00 87 12 B4 4F 76 4F 2A 44 50 4F 82 44
 4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D
-BE 40 3C 47 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
-00 00 30 4D E8 4B 84 4C 4F 4F 50 00 39 40 5E 47
+BE 40 54 46 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
+00 00 30 4D E2 4A 84 4C 4F 4F 50 00 39 40 76 46
 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
 1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A
-00 00 F6 3F 3E 4F 30 4D 98 47 85 2B 4C 4F 4F 50
-39 40 4C 47 E5 3F 56 51 85 4C 45 41 56 45 1A 42
-C6 1D BA 40 6E 47 00 00 BA 40 24 47 02 00 B2 50
-06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C 89 4A
-00 00 30 4D 98 51 04 4D 4F 56 45 00 0A 4E 38 4F
-39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49
-00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 0C 51 0A 56
-4F 43 41 42 55 4C 41 52 59 00 87 12 80 4F 34 44
-10 00 34 44 00 00 3C 47 34 44 00 00 D6 4B 5E 47
-18 52 F2 46 34 44 C8 1D 44 44 F2 44 D6 4B FA 44
-98 4F 34 44 CA 1D FA 44 2A 44 BC 4D 05 46 4F 52
-54 48 84 12 32 52 9C 52 DC 55 DA 52 3C 52 82 50
-8A 51 06 54 CC 52 9C 54 F8 56 DE 50 4E 55 00 00
-DA 53 E6 4D BA 4F 00 00 FE 50 09 41 53 53 45 4D
-42 4C 45 52 84 12 32 52 EA 62 82 62 E6 61 78 5D
-20 5C 9C 5D AE 60 00 00 10 64 22 64 78 5C B6 5C
-B6 62 00 00 00 00 AA 5D 66 52 6A 52 04 41 4C 53
-4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F
-4A 4E 08 50 52 45 56 49 4F 55 53 00 3A 40 0E 00
-39 40 CC 1D 38 40 CA 1D 8A 3F AC 49 04 4F 4E 4C
-59 00 82 43 CC 1D 30 4D 2E 51 0B 44 45 46 49 4E
-49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D D2 50
-07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53
-F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D
-C8 4E 86 5B 54 48 45 4E 5D 00 30 4D 22 53 86 5B
-45 4C 53 45 5D 00 87 12 34 44 00 00 36 45 B0 45
-C4 49 2A 4C 44 44 28 47 9C 53 8A 44 8A 44 60 49
-06 5B 54 48 45 4E 5D 00 F8 52 32 47 6A 53 44 49
-40 45 54 44 32 47 3E 53 2A 44 8A 44 8A 44 60 49
-06 5B 45 4C 53 45 5D 00 F8 52 32 47 8A 53 44 49
-40 45 54 44 32 47 3C 53 2A 44 60 49 04 5B 49 46
-5D 00 F8 52 32 47 3E 53 24 47 3C 53 44 49 60 49
-05 0D 0A 6B 6F 20 22 49 A0 48 38 4C 24 47 3E 53
-2E 53 84 5B 49 46 5D 00 0E 93 3E 4F BC 27 30 4D
-B2 53 89 5B 44 45 46 49 4E 45 44 5D 87 12 B0 45
-C4 49 1C 4A 6C 44 2A 44 C2 53 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 87 12 B0 45 C4 49 1C 4A 6C 44
-64 45 2A 44 F6 53 3D 41 B2 4E 0E 18 A2 4E 0C 18
-3E 4F 44 3C C6 51 06 4D 41 52 4B 45 52 00 B0 12
-CE 4E BA 40 84 12 FC FF BA 40 F4 53 FE FF 9A 42
-C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40
-18 4F 42 52 D2 52 E6 52 3A 54 3A 4E 82 4A C8 1D
-2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83
-18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23
-2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D B2 52 09 50
-57 52 5F 53 54 41 54 45 84 12 32 54 98 52 58 64
-1C 51 09 52 53 54 5F 53 54 41 54 45 92 42 0E 18
-7C 54 92 42 0C 18 7E 54 EF 3F 6E 54 08 50 57 52
-5F 48 45 52 45 00 92 42 C8 1D 7C 54 92 42 C6 1D
-7E 54 30 4D 82 54 08 52 53 54 5F 48 45 52 45 00
-92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F FE 51
-04 57 49 50 45 00 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B2 40 2A 48 28 48 B2 40 58 55 56 55 B2 40
-98 52 0E 18 B2 40 58 64 0C 18 30 12 8C 54 B2 40
-90 48 8E 48 B2 40 54 49 52 49 B2 40 A0 47 9E 47
-B2 40 CC 47 CA 47 B2 40 3C 1D 9E 48 B2 40 18 00
-0A 18 37 40 1A 44 36 40 BC 44 35 40 0E 44 34 40
-00 44 39 40 10 00 29 83 89 43 E0 1D FC 23 B2 40
-0A 00 DC 1D B2 40 20 00 B4 1D 30 41 D0 54 04 57
-41 52 4D 00 30 40 58 55 3D 40 8C 55 92 C3 30 01
-1E 42 08 18 0E 93 11 24 D2 B3 01 02 02 20 3E E3
-1E 53 F2 D0 03 00 0D 02 3E 90 0A 00 AC 27 3E 90
-16 00 A9 2F 2E 93 78 27 81 2F 30 4D 60 49 06 0D
-1B 5B 37 6D 23 00 22 49 E2 46 60 49 1F 46 61 73
-74 46 6F 72 74 68 20 56 33 30 30 20 28 43 29 4A
-2E 4D 2E 54 68 6F 6F 72 65 6E 73 20 22 49 34 44
-80 FF F2 46 28 45 D2 46 60 49 0B 62 79 74 65 73
-20 66 72 65 65 20 24 47 98 4D F0 52 04 43 4F 4C
-44 00 92 B3 CA 05 FD 23 B2 40 04 A5 20 01 B2 40
-88 5A 5C 01 92 D3 04 02 B2 40 FE FF 02 02 92 C3
-06 02 B2 43 26 02 B2 43 22 02 E2 D3 25 02 F2 43
-22 03 F2 43 26 03 F2 40 A5 00 41 01 F2 40 10 00
-40 01 D2 43 41 01 F2 40 A5 00 61 01 B2 40 48 00
-62 01 82 43 66 01 39 40 00 01 B2 40 33 00 64 01
-D2 43 61 01 92 D2 9E 01 08 18 38 40 59 14 18 83
-FE 23 19 83 FA 23 B2 D2 B0 01 F2 D0 10 00 2A 03
-F2 C0 40 00 A1 04 39 40 00 FC 29 83 89 43 00 1C
-FC 23 39 40 34 00 29 83 B9 40 EE 55 CC FF FB 23
-B2 40 30 48 F0 FF B2 40 81 00 C0 05 92 42 02 18
-C6 05 92 42 04 18 C8 05 92 C3 C0 05 92 D3 DA 05
-3F 40 80 1C 31 40 E0 1C 30 12 54 55 37 3F 38 40
-C0 1D 39 48 2A 48 09 5A 1A 52 C4 1D 09 9A 03 24
-7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A C4 1D 30 4D
-B6 54 09 32 43 4F 4E 53 54 41 4E 54 87 12 80 4F
-D6 4B D6 4B 98 4F E8 56 2F 83 9F 4E 02 00 00 00
-2E 4E 3D 41 30 4D D2 56 09 32 56 41 52 49 41 42
-4C 45 87 12 80 4F 34 44 04 00 06 47 98 4F 2A 44
-1C 15 B0 12 2A 44 C4 49 1C 4A 32 47 26 57 D8 4A
-28 47 CC 4D 5E 57 28 57 29 4E 39 90 86 12 02 20
-2E 53 15 3C 39 90 85 12 03 20 1E 4E 02 00 0F 3C
-39 90 84 12 0C 20 2E 52 B9 90 E6 56 02 00 04 24
-B9 90 0E 57 02 00 03 20 B0 12 E8 56 5E 57 1B 17
-30 41 32 B0 00 02 01 24 3E 4F 30 41 3E 40 28 00
-B0 12 10 57 B0 12 62 57 19 42 C6 1D A2 53 C6 1D
+00 00 F6 3F 3E 4F 30 4D 90 46 85 2B 4C 4F 4F 50
+39 40 64 46 E5 3F 06 50 04 4D 4F 56 45 00 0A 4E
+38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
+F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 48
+CA 1D F2 44 2A 44 84 12 7E 50 AE 4F 5C 53 DE 4F
+BE 4C 32 4F 3A 50 70 54 64 48 66 51 80 51 8E 4F
+00 52 00 00 42 54 E8 4C 78 4E 00 00 84 12 7E 50
+9A 5B 8C 5B 42 59 64 5A 08 59 00 00 7E 5B 00 00
+FE 58 A8 5B 60 59 9E 59 48 57 00 00 00 00 40 5A
+AA 50 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D C6 3F
+3A 40 0E 00 39 40 CC 1D 38 40 CA 1D B9 3F 82 43
+CC 1D 30 4D 92 42 CA 1D DA 1D 30 4D 86 50 EE 50
+F4 50 04 51 3A 4E 82 4A C8 1D 2E 4E 82 4E C6 1D
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 4D 09 50 57 52 5F 53 54 41
+54 45 84 12 FC 50 D0 50 B4 5B CC 4F 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 51 92 42 0C 18
+48 51 EF 3F 38 51 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 1D 46 51 92 42 C6 1D 48 51 30 4D 4C 51
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 1D 0E 18
+92 42 C6 1D 0C 18 EC 3F BC 4F 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 46
+DE 46 B2 40 0A 52 08 52 B2 40 D0 50 0E 18 B2 40
+B4 5B 0C 18 30 12 56 51 B2 40 86 47 84 47 B2 40
+08 48 06 48 B2 40 98 46 96 46 B2 40 18 00 0A 18
+37 40 1A 44 36 40 92 44 35 40 0E 44 34 40 00 44
+B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41 9A 51
+04 57 41 52 4D 00 30 40 0A 52 3D 40 3E 52 92 C3
+30 01 1E 42 08 18 0E 93 11 24 D2 B3 01 02 02 20
+3E E3 1E 53 F2 D0 03 00 0D 02 3E 90 0A 00 B8 27
+3E 90 16 00 B5 2F 2E 93 84 27 8D 2F 30 4D 1E 48
+06 0D 1B 5B 37 6D 23 00 D6 47 34 46 1E 48 19 46
+61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54
+68 6F 6F 72 65 6E 73 20 D6 47 14 48 30 FF A0 4A
+B8 44 24 46 1E 48 0A 62 79 74 65 73 20 66 72 65
+65 00 3C 46 9A 4C 82 4F 04 43 4F 4C 44 00 92 B3
+CA 05 FD 23 B2 40 04 A5 20 01 3E 52 B2 40 88 5A
+5C 01 B2 40 FE FF 02 02 B2 D3 06 02 B2 D3 26 02
+B2 40 FF BF 22 02 E2 D3 25 02 F2 43 22 03 F2 D3
+26 03 F2 40 A5 00 41 01 F2 40 10 00 40 01 D2 43
+41 01 F2 40 A5 00 61 01 B2 40 48 00 62 01 82 43
+66 01 39 40 00 01 B2 40 33 00 64 01 D2 43 61 01
+92 D2 9E 01 08 18 38 40 59 14 18 83 FE 23 19 83
+FA 23 B2 D2 B0 01 F2 D0 10 00 2A 03 F2 C0 40 00
+A1 04 39 40 00 08 29 83 89 43 00 1C FC 23 39 40
+34 00 29 83 B9 40 9C 52 CC FF FB 23 B2 40 26 47
+F0 FF B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42
+04 18 C8 05 92 C3 C0 05 92 D3 DA 05 3F 40 80 1C
+31 40 E0 1C 30 12 06 52 40 3F 88 52 07 43 4F 4D
+50 41 52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
+0C 24 1B 83 07 30 1C 83 07 30 19 53 F9 98 FF FF
+F5 27 02 2C 3E 43 30 4D 1E 43 30 4D B2 4D 86 5B
+54 48 45 4E 5D 00 30 4D 8E 53 86 5B 45 4C 53 45
+5D 00 87 12 14 48 00 00 C6 44 42 4B 80 48 24 4B
+34 44 40 46 04 54 44 44 1E 48 06 5B 54 48 45 4E
+5D 00 64 53 4A 46 D4 53 F8 47 D0 44 58 44 4A 46
+AA 53 2A 44 44 44 1E 48 06 5B 45 4C 53 45 5D 00
+64 53 4A 46 F2 53 F8 47 D0 44 58 44 4A 46 A8 53
+2A 44 1E 48 04 5B 49 46 5D 00 64 53 4A 46 AA 53
+3C 46 A8 53 F8 47 1E 48 05 0D 0A 6B 6F 20 D6 47
+8C 47 32 4B 3C 46 AA 53 9A 53 84 5B 49 46 5D 00
+0E 93 3E 4F BE 27 30 4D 1A 54 89 5B 44 45 46 49
+4E 45 44 5D 87 12 42 4B 80 48 EE 48 6A 44 2A 44
+2A 54 8B 5B 55 4E 44 45 46 49 4E 45 44 5D 87 12
+42 4B 80 48 EE 48 6A 44 00 45 2A 44 5E 54 3D 41
+B2 4E 0E 18 A2 4E 0C 18 3E 4F 30 40 56 51 48 50
+06 4D 41 52 4B 45 52 00 B0 12 B8 4D BA 40 84 12
+FC FF BA 40 5C 54 FE FF 9A 42 C8 1D 00 00 28 83
+8A 48 02 00 A2 52 C6 1D 30 40 00 4E 1C 15 B0 12
+2A 44 80 48 EE 48 4A 46 B2 54 AA 49 40 46 CE 4C
+CC 54 B4 54 39 4E 39 80 86 12 08 24 19 53 02 20
+2E 4E 04 3C 2E 53 19 53 01 24 2E 82 1B 17 30 41
+3E 40 28 00 B0 12 9C 54 19 42 C6 1D A2 53 C6 1D
 89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 1D 92 53
-C4 1D B0 12 2A 44 C4 49 D8 4A 28 47 AA 57 A0 57
-21 53 3E 90 10 00 87 2D DA 2B AC 57 B2 41 C4 1D
-D6 3F 87 12 B0 45 AE 56 BA 57 0C 43 1B 42 C6 1D
-A2 53 C6 1D 6A 4E 3E 4F 7A 90 23 00 2F 20 92 53
-C4 1D B0 12 10 57 B0 12 62 57 0E 93 03 20 3C 40
-00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C 2E 93
-03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40 20 02
-12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93 03 20
-3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 1D A2 53
+C4 1D B0 12 2A 44 80 48 AA 49 40 46 0A 55 00 55
+21 53 3E 90 10 00 7D 2D E1 2B 0C 55 B2 41 C4 1D
+DD 3F 87 12 42 4B 74 48 1A 55 0C 43 1B 42 C6 1D
+A2 53 C6 1D 6A 4E 3E 4F 7A 90 23 00 27 20 92 53
+C4 1D B0 12 9C 54 3C 40 00 03 0E 93 1C 24 3C 40
+10 03 1E 93 18 24 3C 40 20 03 2E 93 14 24 3C 40
+20 02 2E 92 10 24 3C 40 30 02 3E 92 0C 24 3C 40
+30 03 3E 93 08 24 3C 40 30 00 19 42 C6 1D A2 53
 C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00
-09 20 3C 40 10 02 92 53 C4 1D B0 12 10 57 B0 12
-62 57 EB 3F 7A 90 40 00 16 20 3C 40 20 00 92 53
-C4 1D B0 12 88 57 0C 20 3C 50 10 00 3E 40 2B 00
-B0 12 88 57 92 92 C0 1D C4 1D 02 24 92 53 C4 1D
-8E 10 0C 5E D8 3F B0 12 88 57 FA 23 3C 50 10 00
-B0 12 6C 57 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D
-87 12 B0 45 AE 56 98 58 FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C6 3F B0 12 88 57 E1 23
-3C 50 80 00 B0 12 6C 57 DC 3F 20 48 04 52 45 54
-49 00 87 12 34 44 00 13 D6 4B 2A 44 34 44 2C 00
-B2 57 90 58 D6 58 2E 4E 0E DC 09 4B A2 3F 4C 50
-03 4D 4F 56 84 12 CC 58 00 40 E0 58 05 4D 4F 56
-2E 42 84 12 CC 58 40 40 00 00 03 41 44 44 84 12
-CC 58 00 50 FA 58 05 41 44 44 2E 42 84 12 CC 58
-40 50 06 59 04 41 44 44 43 00 84 12 CC 58 00 60
-14 59 06 41 44 44 43 2E 42 00 84 12 CC 58 40 60
-BC 58 04 53 55 42 43 00 84 12 CC 58 00 70 32 59
-06 53 55 42 43 2E 42 00 84 12 CC 58 40 70 40 59
-03 53 55 42 84 12 CC 58 00 80 50 59 05 53 55 42
-2E 42 84 12 CC 58 40 80 2E 50 03 43 4D 50 84 12
-CC 58 00 90 6A 59 05 43 4D 50 2E 42 84 12 CC 58
-40 90 1C 50 04 44 41 44 44 00 84 12 CC 58 00 A0
-84 59 06 44 41 44 44 2E 42 00 84 12 CC 58 40 A0
-76 59 03 42 49 54 84 12 CC 58 00 B0 A2 59 05 42
-49 54 2E 42 84 12 CC 58 40 B0 AE 59 03 42 49 43
-84 12 CC 58 00 C0 BC 59 05 42 49 43 2E 42 84 12
-CC 58 40 C0 C8 59 03 42 49 53 84 12 CC 58 00 D0
-D6 59 05 42 49 53 2E 42 84 12 CC 58 40 D0 00 00
-03 58 4F 52 84 12 CC 58 00 E0 F0 59 05 58 4F 52
-2E 42 84 12 CC 58 40 E0 22 59 03 41 4E 44 84 12
-CC 58 00 F0 0A 5A 05 41 4E 44 2E 42 84 12 CC 58
-40 F0 B0 45 B2 57 28 5A 0A 4C 3C F0 70 00 8A 10
-3A F0 0F 00 0C DA 4F 3F 5C 59 03 52 52 43 84 12
-22 5A 00 10 3A 5A 05 52 52 43 2E 42 84 12 22 5A
-40 10 46 5A 04 53 57 50 42 00 84 12 22 5A 80 10
-54 5A 03 52 52 41 84 12 22 5A 00 11 62 5A 05 52
-52 41 2E 42 84 12 22 5A 40 11 6E 5A 03 53 58 54
-84 12 22 5A 80 11 00 00 04 50 55 53 48 00 84 12
-22 5A 00 12 88 5A 06 50 55 53 48 2E 42 00 84 12
-22 5A 40 12 E2 59 04 43 41 4C 4C 00 84 12 22 5A
-80 12 1A 53 0E 4A 87 12 E2 46 60 49 0D 6F 75 74
-20 6F 66 20 62 6F 75 6E 64 73 48 4D B0 45 AE 56
-D2 5A 92 53 C4 1D 3E 40 2C 00 B0 12 2A 44 C4 49
-D8 4A 28 47 CC 4D 86 58 EA 5A 0A 4E 3E 4F 1A 83
-E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
-08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F
-8A 10 5A 06 8F 3F 7C 5A 06 52 52 43 4D 2E 41 00
-84 12 CC 5A 40 00 18 5B 04 52 52 43 4D 00 84 12
-CC 5A 50 00 28 5B 06 52 52 41 4D 2E 41 00 84 12
-CC 5A 40 01 36 5B 04 52 52 41 4D 00 84 12 CC 5A
-50 01 46 5B 06 52 4C 41 4D 2E 41 00 84 12 CC 5A
-40 02 54 5B 04 52 4C 41 4D 00 84 12 CC 5A 50 02
-64 5B 06 52 52 55 4D 2E 41 00 84 12 CC 5A 40 03
-72 5B 04 52 52 55 4D 00 84 12 CC 5A 50 03 96 5A
-07 50 55 53 48 4D 2E 41 84 12 CC 5A 00 14 90 5B
-05 50 55 53 48 4D 84 12 CC 5A 00 15 A0 5B 06 50
-4F 50 4D 2E 41 00 84 12 CC 5A 00 16 AE 5B 04 50
-4F 50 4D 00 84 12 CC 5A 00 17 85 12 00 3C 82 5B
-03 53 3E 3D 85 12 00 38 D0 5B 02 53 3C 00 85 12
-00 34 BE 5B 03 30 3E 3D 85 12 00 30 E4 5B 02 30
-3C 00 85 12 00 30 00 00 02 55 3C 00 85 12 00 2C
-F8 5B 03 55 3E 3D 85 12 00 28 EE 5B 03 30 3C 3E
-85 12 00 24 0C 5C 02 30 3D 00 85 12 00 20 00 00
-02 49 46 00 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D
-0E 4A 30 4D 02 5C 04 54 48 45 4E 00 1A 42 C6 1D
-08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
-31 2F 88 DA 00 00 30 4D 92 59 04 45 4C 53 45 00
-1A 42 C6 1D BA 40 00 3C 00 00 A2 53 C6 1D 2F 83
-8F 4A 00 00 E3 3F 36 5C 05 55 4E 54 49 4C 3A 4F
-08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11 3A 90
-00 FE 10 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
-C6 1D 30 4D 16 5A 05 41 47 41 49 4E 87 12 CA 5B
-7E 5C 2A 44 00 00 05 57 48 49 4C 45 87 12 24 5C
-78 44 2A 44 DA 5B 06 52 45 50 45 41 54 00 87 12
-CA 5B 7E 5C 3C 5C 2A 44 DA 5C 3D 41 2E 4E 08 4E
-3E 4F 2A 48 0A 93 88 43 00 00 CA 23 98 42 C6 1D
-00 00 30 4D A6 5A 03 42 57 31 84 12 D8 5C E0 1D
-F6 5C 03 42 57 32 84 12 D8 5C E2 1D 02 5D 03 42
-57 33 84 12 D8 5C E4 1D 1A 5D 3D 41 1A 42 C6 1D
-2E 4E 28 4E 08 93 8E 43 00 00 8B 23 BA 4F 00 00
-A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
-57 31 84 12 18 5D E6 1D 3E 5D 03 46 57 32 84 12
-18 5D E8 1D 4A 5D 03 46 57 33 84 12 18 5D EA 1D
-3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10 02 24
-3E E0 00 08 30 4D 56 5D 04 47 4F 54 4F 00 87 12
-CA 5B BE 4D CC 4B 2A 44 00 00 05 3F 47 4F 54 4F
-87 12 60 5D BE 4D CC 4B 2A 44 00 00 03 4A 4D 50
-87 12 BE 4D AC 5C 2A 44 8A 5D 04 3F 4A 4D 50 00
-87 12 60 5D BE 4D 78 44 7E 5C 2A 44 87 12 B0 45
-AE 56 C4 5D 69 4E 3E 4F 3C 4F 2C 4C 1B 42 C6 1D
-A2 53 C6 1D 79 90 52 00 0A 20 B0 12 88 57 5E 0E
-5E 0E 0E DC 8B 4E 00 00 0E 4B 3D 41 30 4D 79 90
-23 00 0D 20 3C C0 40 00 92 53 C4 1D A2 53 C6 1D
-B0 12 10 57 BB 4F 02 00 3E F0 0F 00 E8 3F 79 90
-26 00 03 20 3C E0 E0 00 EF 3F 3C C0 F0 00 79 90
-40 00 12 20 92 53 C4 1D B0 12 88 57 D8 23 3C D0
-10 00 3E 40 2B 00 B0 12 88 57 92 92 C0 1D C4 1D
-CE 27 92 53 C4 1D CB 3F 3C D0 30 00 A2 53 C6 1D
-3E 40 28 00 B0 12 10 57 BB 4F 02 00 3E 40 29 00
-EA 3F 87 12 B0 45 AE 56 6A 5E 3B 4F 2C 4B 69 4E
-7E 40 20 00 79 90 52 00 03 20 B0 12 88 57 B1 3F
-3C C0 F0 00 A2 53 C6 1D 79 90 26 00 09 20 3C D0
-60 00 92 53 C4 1D B0 12 10 57 BB 4F 02 00 A1 3F
-3C D0 70 00 3E 40 28 00 B0 12 10 57 BB 4F 02 00
-3E 40 29 00 E2 3F 34 44 2C 00 BC 5D 62 5E 62 44
-2A 44 EC 58 04 4D 4F 56 41 00 84 12 B6 5E C0 00
-0E 5D 04 43 4D 50 41 00 84 12 B6 5E D0 00 A6 5C
-04 41 44 44 41 00 84 12 B6 5E E0 00 C6 5C 04 53
-55 42 41 00 84 12 B6 5E F0 00 D2 5E 05 43 41 4C
-4C 41 87 12 B0 45 AE 56 0A 5F 1B 42 C6 1D A2 53
-C6 1D 6E 4E 3C 40 34 01 7E 90 52 00 0B 20 7E 40
-20 00 B0 12 88 57 5C 0E 0C DE 8B 4C 00 00 3E 4F
-3D 41 30 4D 2C 53 7E 90 40 00 0B 20 92 53 C4 1D
-7E 40 20 00 B0 12 88 57 EE 23 1C 53 3E 40 2B 00
-E8 3F A2 53 C6 1D 7E 90 23 00 09 20 3C 40 3B 01
-92 53 C4 1D B0 12 10 57 BB 4F 02 00 DC 3F 7E 90
-26 00 02 20 2C 53 F4 3F 7E 40 28 00 1C 83 B0 12
-10 57 BB 4F 02 00 3E 40 29 00 CB 3F 87 12 B0 45
-AE 56 94 5F 69 4E 3E 4F 3C 40 00 18 79 90 52 00
-05 20 B0 12 88 57 0E 4C 3D 41 30 4D 82 43 EE 1D
-79 90 23 00 0B 20 92 53 C4 1D B0 12 10 57 2F 53
-3E F0 0F 00 5E 0A 5E 0E 0C DE ED 3F 79 90 26 00
-F2 27 79 90 40 00 12 20 92 53 C4 1D B0 12 88 57
-E2 23 3E 40 2B 00 92 53 C4 1D B0 12 88 57 92 92
-C0 1D C4 1D D8 27 92 53 C4 1D D5 3F 3E 40 28 00
-B0 12 10 57 8F 4E 00 00 3E 40 29 00 B0 12 88 57
-3E 4F 3E F0 0F 00 0C DE EA 3F 87 12 B0 45 AE 56
-22 60 3C 4F 69 4E 3E 40 20 00 79 90 52 00 BB 27
-82 43 EE 1D 79 90 26 00 08 20 92 53 C4 1D B0 12
-10 57 2F 53 3E F0 0F 00 BF 3F 3E 40 28 00 B0 12
-10 57 F7 3F 1B 42 C6 1D A2 53 C6 1D 0C 4E 3E 4F
-1C D2 EE 1D 82 43 EE 1D 3C DE 8B 4C 00 00 B2 41
-C4 1D 30 4D 34 44 C4 1D F2 44 B0 44 34 44 2C 00
-8C 5F 1A 60 54 60 24 47 CC 58 C4 5E 04 4D 4F 56
-58 00 84 12 74 60 40 00 00 40 8C 60 06 4D 4F 56
-58 2E 41 00 84 12 74 60 00 00 40 40 9C 60 06 4D
-4F 56 58 2E 42 00 84 12 74 60 40 00 40 40 E0 5E
-04 41 44 44 58 00 84 12 74 60 40 00 00 50 C0 60
-06 41 44 44 58 2E 41 00 84 12 74 60 00 00 40 50
-D0 60 06 41 44 44 58 2E 42 00 84 12 74 60 40 00
-40 50 E2 60 05 41 44 44 43 58 84 12 74 60 40 00
-00 60 F4 60 07 41 44 44 43 58 2E 41 84 12 74 60
-00 00 40 60 04 61 07 41 44 44 43 58 2E 42 84 12
-74 60 40 00 40 60 EE 5E 05 53 55 42 43 58 84 12
-74 60 40 00 00 70 28 61 07 53 55 42 43 58 2E 41
-84 12 74 60 00 00 40 70 38 61 07 53 55 42 43 58
-2E 42 84 12 74 60 40 00 40 70 4A 61 04 53 55 42
-58 00 84 12 74 60 40 00 00 80 5C 61 06 53 55 42
-58 2E 41 00 84 12 74 60 00 00 40 80 6C 61 06 53
-55 42 58 2E 42 00 84 12 74 60 40 00 40 80 FC 5E
-04 43 4D 50 58 00 84 12 74 60 40 00 00 90 90 61
-06 43 4D 50 58 2E 41 00 84 12 74 60 00 00 40 90
-A0 61 06 43 4D 50 58 2E 42 00 84 12 74 60 40 00
-40 90 5A 5C 05 44 41 44 44 58 84 12 74 60 40 00
-00 A0 C4 61 07 44 41 44 44 58 2E 41 84 12 74 60
-00 00 40 A0 D4 61 07 44 41 44 44 58 2E 42 84 12
-74 60 40 00 40 A0 B2 61 04 42 49 54 58 00 84 12
-74 60 40 00 00 B0 F8 61 06 42 49 54 58 2E 41 00
-84 12 74 60 00 00 40 B0 08 62 06 42 49 54 58 2E
-42 00 84 12 74 60 40 00 40 B0 1A 62 04 42 49 43
-58 00 84 12 74 60 40 00 00 C0 2C 62 06 42 49 43
-58 2E 41 00 84 12 74 60 00 00 40 C0 3C 62 06 42
-49 43 58 2E 42 00 84 12 74 60 40 00 40 C0 4E 62
-04 42 49 53 58 00 84 12 74 60 40 00 00 D0 60 62
-06 42 49 53 58 2E 41 00 84 12 74 60 00 00 40 D0
-70 62 06 42 49 53 58 2E 42 00 84 12 74 60 40 00
-40 D0 FC 59 04 58 4F 52 58 00 84 12 74 60 40 00
-00 E0 94 62 06 58 4F 52 58 2E 41 00 84 12 74 60
-00 00 40 E0 A4 62 06 58 4F 52 58 2E 42 00 84 12
-74 60 40 00 40 E0 16 61 04 41 4E 44 58 00 84 12
-74 60 40 00 00 F0 C8 62 06 41 4E 44 58 2E 41 00
-84 12 74 60 00 00 40 F0 D8 62 06 41 4E 44 58 2E
-42 00 84 12 74 60 40 00 40 F0 34 44 C4 1D F2 44
-B0 44 B0 45 8C 5F 54 60 24 47 22 5A 7E 61 04 52
-52 43 58 00 84 12 FA 62 40 00 00 10 0E 63 06 52
-52 43 58 2E 41 00 84 12 FA 62 00 00 40 10 1E 63
-06 52 52 43 58 2E 42 00 84 12 FA 62 40 00 40 10
-30 63 04 52 52 55 58 00 84 12 FA 62 40 01 00 10
-42 63 06 52 52 55 58 2E 41 00 84 12 FA 62 00 01
-40 10 52 63 06 52 52 55 58 2E 42 00 84 12 FA 62
-40 01 40 10 64 63 05 53 57 50 42 58 84 12 FA 62
-40 00 80 10 76 63 07 53 57 50 42 58 2E 41 84 12
-FA 62 00 00 80 10 86 63 04 52 52 41 58 00 84 12
-FA 62 40 00 00 11 98 63 06 52 52 41 58 2E 41 00
-84 12 FA 62 00 00 40 11 A8 63 06 52 52 41 58 2E
-42 00 84 12 FA 62 40 00 40 11 BA 63 04 53 58 54
-58 00 84 12 FA 62 40 00 80 11 CC 63 06 53 58 54
-58 2E 41 00 84 12 FA 62 00 00 80 11 16 5C 05 50
-55 53 48 58 84 12 FA 62 40 00 00 12 EE 63 07 50
-55 53 48 58 2E 41 84 12 FA 62 00 00 40 12 FE 63
-07 50 55 53 48 58 2E 42 84 12 FA 62 40 00 40 12
-DC 63 03 52 50 54 87 12 B0 45 AE 56 2E 64 29 4E
-7E 40 20 00 79 90 52 00 06 20 B0 12 88 57 03 24
-3E D0 80 00 04 3C B0 12 10 57 3E F0 0F 00 82 4E
-EE 1D 3E 4F 3D 41 30 4D
+07 20 3C 40 10 02 92 53 C4 1D B0 12 9C 54 ED 3F
+7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12
+E8 54 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 E8 54
+92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E
+DA 3F B0 12 E8 54 FA 23 3C 50 10 00 B0 12 D0 54
+EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 87 12 42 4B
+74 48 E4 55 FE 90 26 00 00 00 3E 40 20 00 03 20
+3C 50 82 00 C8 3F B0 12 E8 54 E1 23 3C 50 80 00
+B0 12 D0 54 DC 3F D6 46 04 52 45 54 49 00 87 12
+14 48 00 13 B0 4A 2A 44 14 48 2C 00 12 55 DC 55
+22 56 09 4B 2E 4E 0E DC A4 3F FC 4E 03 4D 4F 56
+84 12 18 56 00 40 2C 56 05 4D 4F 56 2E 42 84 12
+18 56 40 40 00 00 03 41 44 44 84 12 18 56 00 50
+46 56 05 41 44 44 2E 42 84 12 18 56 40 50 52 56
+04 41 44 44 43 00 84 12 18 56 00 60 60 56 06 41
+44 44 43 2E 42 00 84 12 18 56 40 60 08 56 04 53
+55 42 43 00 84 12 18 56 00 70 7E 56 06 53 55 42
+43 2E 42 00 84 12 18 56 40 70 8C 56 03 53 55 42
+84 12 18 56 00 80 9C 56 05 53 55 42 2E 42 84 12
+18 56 40 80 DE 4E 03 43 4D 50 84 12 18 56 00 90
+B6 56 05 43 4D 50 2E 42 84 12 18 56 40 90 CC 4E
+04 44 41 44 44 00 84 12 18 56 00 A0 D0 56 06 44
+41 44 44 2E 42 00 84 12 18 56 40 A0 C2 56 03 42
+49 54 84 12 18 56 00 B0 EE 56 05 42 49 54 2E 42
+84 12 18 56 40 B0 FA 56 03 42 49 43 84 12 18 56
+00 C0 08 57 05 42 49 43 2E 42 84 12 18 56 40 C0
+14 57 03 42 49 53 84 12 18 56 00 D0 22 57 05 42
+49 53 2E 42 84 12 18 56 40 D0 00 00 03 58 4F 52
+84 12 18 56 00 E0 3C 57 05 58 4F 52 2E 42 84 12
+18 56 40 E0 6E 56 03 41 4E 44 84 12 18 56 00 F0
+56 57 05 41 4E 44 2E 42 84 12 18 56 40 F0 42 4B
+12 55 74 57 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
+0C DA 4F 3F A8 56 03 52 52 43 84 12 6E 57 00 10
+86 57 05 52 52 43 2E 42 84 12 6E 57 40 10 92 57
+04 53 57 50 42 00 84 12 6E 57 80 10 A0 57 03 52
+52 41 84 12 6E 57 00 11 AE 57 05 52 52 41 2E 42
+84 12 6E 57 40 11 BA 57 03 53 58 54 84 12 6E 57
+80 11 00 00 04 50 55 53 48 00 84 12 6E 57 00 12
+D4 57 06 50 55 53 48 2E 42 00 84 12 6E 57 40 12
+2E 57 04 43 41 4C 4C 00 84 12 6E 57 80 12 1A 53
+0E 4A 87 12 34 46 1E 48 0D 6F 75 74 20 6F 66 20
+62 6F 75 6E 64 73 4C 4C 42 4B 74 48 1E 58 92 53
+C4 1D 3E 40 2C 00 B0 12 2A 44 80 48 AA 49 40 46
+CE 4C D2 55 36 58 0A 4E 3E 4F 1A 83 E0 33 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06
+8F 3F C8 57 04 52 52 43 4D 00 84 12 18 58 50 00
+64 58 04 52 52 41 4D 00 84 12 18 58 50 01 72 58
+04 52 4C 41 4D 00 84 12 18 58 50 02 80 58 04 52
+52 55 4D 00 84 12 18 58 50 03 E2 57 05 50 55 53
+48 4D 84 12 18 58 00 15 9C 58 04 50 4F 50 4D 00
+84 12 18 58 00 17 8E 58 03 53 3E 3D 85 12 00 38
+B8 58 02 53 3C 00 85 12 00 34 AA 58 03 30 3E 3D
+85 12 00 30 CC 58 02 30 3C 00 85 12 00 30 00 00
+02 55 3C 00 85 12 00 2C E0 58 03 55 3E 3D 85 12
+00 28 D6 58 03 30 3C 3E 85 12 00 24 F4 58 02 30
+3D 00 85 12 00 20 00 00 02 49 46 00 1A 42 C6 1D
+8A 4E 00 00 A2 53 C6 1D 0E 4A 30 4D EA 58 04 54
+48 45 4E 00 1A 42 C6 1D 08 4E 3E 4F 09 48 29 53
+0A 89 0A 11 3A 90 00 02 63 2F 88 DA 00 00 30 4D
+DE 56 04 45 4C 53 45 00 1A 42 C6 1D BA 40 00 3C
+00 00 A2 53 C6 1D 2F 83 8F 4A 00 00 E3 3F 1E 59
+05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 1D
+2A 83 0A 89 0A 11 3A 90 00 FE 42 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C6 1D 30 4D 62 57 05 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57
+48 49 4C 45 87 12 0C 59 76 44 2A 44 C2 58 06 52
+45 50 45 41 54 00 87 12 94 59 24 59 2A 44 C0 59
+3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D CD 2F 98 42
+C6 1D 00 00 30 4D F2 57 03 42 57 31 84 12 BE 59
+00 00 D8 59 03 42 57 32 84 12 BE 59 00 00 E4 59
+03 42 57 33 84 12 BE 59 00 00 FC 59 3D 41 1A 42
+C6 1D 28 4E B2 92 C4 1D 90 2B BA 4F 00 00 A2 53
+C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
+84 12 FA 59 00 00 1C 5A 03 46 57 32 84 12 FA 59
+00 00 28 5A 03 46 57 33 84 12 FA 59 00 00 00 00
+05 3F 47 4F 54 4F 3E 90 00 30 07 24 3E E0 00 04
+3E B0 00 10 02 24 3E E0 00 08 87 12 C0 4C DA 4A
+2A 44 34 5A 04 47 4F 54 4F 00 2F 83 8F 4E 00 00
+3E 40 00 3C F2 3F 87 12 42 4B 74 48 7E 5A 69 4E
+3E 4F 3C 4F 2C 4C 1B 42 C6 1D A2 53 C6 1D 79 90
+52 00 0A 20 B0 12 E8 54 5E 0E 5E 0E 0E DC 8B 4E
+00 00 0E 4B 3D 41 30 4D 79 90 23 00 0D 20 3C C0
+40 00 92 53 C4 1D A2 53 C6 1D B0 12 9C 54 BB 4F
+02 00 3E F0 0F 00 E8 3F 79 90 26 00 03 20 3C E0
+E0 00 EF 3F 3C C0 F0 00 79 90 40 00 12 20 92 53
+C4 1D B0 12 E8 54 D8 23 3C D0 10 00 3E 40 2B 00
+B0 12 E8 54 92 92 C0 1D C4 1D CE 27 92 53 C4 1D
+CB 3F 3C D0 30 00 A2 53 C6 1D 3E 40 28 00 B0 12
+9C 54 BB 4F 02 00 3E 40 29 00 EA 3F 87 12 42 4B
+74 48 24 5B 3B 4F 2C 4B 69 4E 7E 40 20 00 79 90
+52 00 03 20 B0 12 E8 54 B1 3F 3C C0 F0 00 A2 53
+C6 1D 79 90 26 00 09 20 3C D0 60 00 92 53 C4 1D
+B0 12 9C 54 BB 4F 02 00 A1 3F 3C D0 70 00 3E 40
+28 00 B0 12 9C 54 BB 4F 02 00 3E 40 29 00 E2 3F
+14 48 2C 00 76 5A 1C 5B 66 44 2A 44 38 56 04 4D
+4F 56 41 00 84 12 70 5B C0 00 F0 59 04 43 4D 50
+41 00 84 12 70 5B D0 00 8E 59 04 41 44 44 41 00
+84 12 70 5B E0 00 AE 59 04 53 55 42 41 00 84 12
+70 5B F0 00
 @FFFE
-EE 55
+9C 52
 q
index fd906b3..1583874 100644 (file)
 @1800
-10 00 08 00 00 D6 E8 03 05 00 18 00 46 64 98 52
-2C 01 7F B0 00 48 12 48
+10 00 08 00 00 D6 E8 03 05 00 18 00 A2 5B D0 50
+2D 01 6B B4 B6 46 C8 46
 @4400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 44
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 44 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 44 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 44 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 44 02 3E 52 00
-0E 12 3E 4F 30 4D 96 44 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 44 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 44 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 44 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 45 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 44 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 45 02 31 2D 00
-1E 83 30 4D D8 44 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 45
-02 30 3D 00 1E 83 0E 7E 30 4D 60 45 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 45 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 44 01 3E 3E 8F F4 3B EB 37 0E 45 02 42 4C 00
-85 12 20 00 AC 45 04 42 41 53 45 00 85 12 DC 1D
-C8 44 05 53 54 41 54 45 85 12 BE 1D 96 45 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 45 06 55 4D 2F
-4D 4F 44 00 30 12 62 44 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 44 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 45
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 45 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 46
-02 23 53 00 87 12 32 46 6A 46 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 46 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 45 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 45
-02 44 2E 00 87 12 D2 45 44 44 B0 44 4C 45 64 46
-BC 44 A2 46 7E 46 22 49 EA 48 2A 44 DC 45 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 44
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 46 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 44
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A 46
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 46 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 46 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 45 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 47 03 4B 45 59 30 40 A0 47
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 00 48 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 12 48 30 4D 00 47
-06 41 43 43 45 50 54 00 30 40 CC 47 3C 40 6E 48
-3B 40 38 48 2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00
-3C 40 20 00 3D 40 62 48 92 B3 DC 05 05 24 18 42
-CC 05 38 90 0A 00 04 20 21 53 39 40 26 48 4D 15
-A2 B3 DC 05 FD 27 B2 40 11 00 CE 05 E2 C3 23 02
-30 41 B2 40 13 00 CE 05 E2 D3 23 02 30 41 00 00
-05 53 4C 45 45 50 30 40 2A 48 12 D2 0A 18 FB 3F
-21 52 3A 17 58 42 CC 05 48 9C 08 2C 48 9B E9 27
-78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24
-CE 48 00 00 1E 53 A2 B3 DC 05 FD 27 82 48 CE 05
-30 4D 64 48 2D 83 92 B3 DC 05 E4 23 FC 27 82 93
-DE 1D 02 24 92 53 DE 1D 3E 8F 3D 41 B2 40 18 00
-0A 18 30 4D B0 46 04 45 4D 49 54 00 30 40 90 48
-08 4E 3E 4F E0 3F 10 47 03 43 49 42 85 12 3C 1D
-3F 80 06 00 8F 4E 04 00 3E 40 54 00 9F 42 9E 48
-00 00 AF 4F 02 00 88 3F 86 48 04 45 43 48 4F 00
-B2 40 82 48 5C 48 82 43 DE 1D 30 4D E0 46 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 5C 48 92 43 DE 1D
-30 4D 9C 46 05 53 50 41 43 45 2F 83 8F 4E 00 00
-3E 40 20 00 CB 3F E4 48 06 53 50 41 43 45 53 00
-0E 93 09 24 0D 12 3D 40 0C 49 EF 3F 0E 49 2D 83
-1E 83 EB 23 3D 41 3E 4F 30 4D 66 47 04 54 59 50
-45 00 0E 93 0F 24 1E 15 3D 40 38 49 28 4F 7E 48
-8F 48 00 00 2F 83 AA 3F 3A 49 2D 83 91 83 02 00
-F5 23 1D 17 2F 53 3E 4F 30 4D 98 48 02 43 52 00
-30 40 54 49 87 12 60 49 02 0D 0A 00 22 49 2A 44
-2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
-0D 63 30 4D F8 48 82 53 22 00 82 43 B4 1D 87 12
-34 44 60 49 D6 4B 34 44 22 00 C4 49 8E 49 3D 41
-B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D 3E 4F
-92 B3 C6 1D A2 63 C6 1D 30 4D CE 48 82 2E 22 00
-87 12 7A 49 34 44 22 49 D6 4B 2A 44 00 00 04 57
-4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A 3A 5C
-28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40 60 00
-C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24 18 53
-4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D F0 3F
-1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E CE 48
-00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83 0C 4E
-65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93 1E 24
-58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E FE FF
-0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23 0A 4C
-FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
-0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C 00 00
-35 40 0E 44 34 40 00 44 30 4D A2 45 07 3E 4E 55
-4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42 DC 1D
-6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80 07 00
-7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49 D0 04
-82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42 E6 04
-09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00 8F 48
-02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43 2D 15
-3D 40 1E 4B 09 43 08 43 3F 82 8F 4E 06 00 0C 4E
-7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43 02 00
-E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53 04 24
-3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F 20 4B
-2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02 7A 90
-F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43 8F 49
-02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00 79 90
-0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28 09 9B
-08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 45 2A 17
-E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A 4E 93
-2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02 3F 50
-06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00 BF 4F
-00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3 00 00
-9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20 2F 53
-30 4D BA 48 07 45 58 45 43 55 54 45 0A 4E 3E 4F
-00 4A 26 45 01 2C 1A 42 C6 1D A2 53 C6 1D 8A 4E
-00 00 3E 4F 30 4D D4 4B 87 4C 49 54 45 52 41 4C
-82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D BA 40
-34 44 00 00 8A 4E 02 00 3E 4F 32 B0 00 02 32 C0
-00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49 EB 3F
-30 4D 4C 49 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F C2 1D
-3E 4F 82 43 C4 1D 30 4D 87 12 38 4C B0 45 C4 49
-52 4C 3D 40 5A 4C E2 22 5D 3E 5C 4C 0A 4E 3E 4F
-3D 40 72 4C 39 27 3D 40 4C 4C 1A E2 BE 1D B3 27
-AD 23 74 4C 3E 4F 3D 40 4C 4C BA 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 3E 4F CD 3F
-C4 4B 08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D
-3C 49 3B 49 3A 49 3D 15 B0 12 2A 44 48 4C B0 4C
-B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D
-6C 45 04 51 55 49 54 00 82 43 08 18 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44 50 49
-A0 48 EA 48 48 4C DE 44 70 45 60 49 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 3C 4D 34 44 30 FF
-F2 46 8A 45 60 49 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 3C 4D 24 47 DE 4C C0 47 05 41 42 4F 52 54
-3F 40 80 1C D1 3F 1A 4D 86 41 42 4F 52 54 22 00
-87 12 7A 49 34 44 3C 4D D6 4B 2A 44 8F 93 02 00
-03 20 2F 52 3E 4F 30 4D B0 12 FE 54 B0 12 00 48
-92 C3 DC 05 38 40 AA 0A 39 42 09 59 03 43 19 83
-FD 23 18 83 F9 23 92 B3 DC 05 F2 23 87 12 78 54
-34 44 DE 1D F2 44 C0 48 60 49 04 1B 5B 37 6D 00
-22 49 54 44 28 47 98 4D 50 49 60 49 05 6C 69 6E
-65 3A 22 49 40 45 D2 46 22 49 60 49 04 1B 5B 30
-6D 00 22 49 20 4D 00 00 83 5B 27 5D 87 12 BE 4D
-34 44 34 44 D6 4B D6 4B 2A 44 16 4A 01 27 87 12
-B0 45 C4 49 1C 4A 28 47 CC 4D 2A 44 7C 4C CE 45
-81 5C 92 42 C0 1D C4 1D 30 4D A8 4D 81 5B 82 43
-BE 1D 30 4D D0 4D 01 5D B2 43 BE 1D 30 4D BE 4F
-02 00 3E 4F 30 4D 72 47 82 49 53 00 87 12 C8 45
-F2 44 28 47 10 4E AC 4D 34 44 EE 4D D6 4B 2A 44
-BE 4D EE 4D 2A 44 F8 4D 09 49 4D 4D 45 44 49 41
-54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D 76 49
-87 52 45 43 55 52 53 45 19 42 C6 1D 99 42 BA 1D
-00 00 A2 53 C6 1D 30 4D C2 4C 88 50 4F 53 54 50
-4F 4E 45 00 87 12 B0 45 C4 49 1C 4A 54 44 28 47
-CC 4D 70 45 28 47 74 4E 34 44 34 44 D6 4B D6 4B
-34 44 D6 4B D6 4B 2A 44 DC 4D 81 3B 82 93 BE 1D
-A8 27 87 12 34 44 2A 44 D6 4B 12 4F DE 4D 2A 44
-7A 4E 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E 00 00
-1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02 B0 12
-FE 4E BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D
-82 4F BC 1D 30 4D 92 4E 01 3A 30 12 B2 4E 87 12
-A0 49 B0 45 C4 49 D8 4E 3D 41 08 4E 7A 4E 5A D3
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 44
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 44
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 44
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 44 02 3E 52 00 0E 12 3E 4F 30 4D 70 44 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 44 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 44 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 44
+01 21 BE 4F 00 00 3E 4F 30 4D CC 44 02 30 3D 00
+1E 83 0E 7E 30 4D FC 44 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 45 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 45 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 45 02 23 53 00 87 12 88 45 C0 45
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 45
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 44 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 45 34 44 86 44 D4 44 BA 45
+92 44 F8 45 D4 45 D6 47 42 4B 82 47 2A 44 22 45
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 45 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 46 18 42 CC 05 2F 83 8F 4E
+00 00 B0 12 B6 46 92 B3 DC 05 FD 27 1E 42 CC 05
+B0 12 C8 46 30 4D A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C3 23 02 30 41 B2 40 13 00 CE 05 E2 D3
+23 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 46
+B0 12 B6 46 12 D2 0A 18 F9 3F F0 44 06 41 43 43
+45 50 54 00 3C 40 64 47 3B 40 2E 47 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 47
+92 B3 DC 05 05 24 18 42 CC 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 CC 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 DC 05
+FD 27 82 48 CE 05 30 4D 5A 47 2D 83 92 B3 DC 05
+E4 23 FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 44 04 45 4D 49
+54 00 30 40 86 47 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
+02 00 A8 3F 7C 47 04 45 43 48 4F 00 B2 40 82 48
+52 47 82 43 DE 1D 30 4D 32 46 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 47 92 43 DE 1D 30 4D 20 46
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 47
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 47 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 45
+02 43 52 00 30 40 08 48 87 12 1E 48 02 0D 0A 00
+D6 47 2A 44 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 45 82 53 22 00 82 43 B4 1D 87 12 14 48
+1E 48 B0 4A 14 48 22 00 80 48 4C 48 B2 40 20 00
+B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41 3E 4F
+30 4D BA 47 82 2E 22 00 87 12 38 48 14 48 D6 47
+B0 4A 2A 44 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52 C4 1D
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D 3B 40
+60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
+18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D
+F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E
+CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
+0C 4E 65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
+FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
+00 00 35 40 0E 44 34 40 00 44 30 4D 82 44 07 3E
+4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
+DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
+07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
+D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 1D 0C 43 2D 15 3D 40 F4 49 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 49 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 45 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 46 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 44 01 2C
+1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D
+EC 46 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D
+A6 47 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 4A 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
+1A 42 C6 1D A2 52 C6 1D BA 40 14 48 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 48 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
+30 4D 85 12 20 00 87 12 32 4B 42 4B 80 48 50 4B
+3D 40 58 4B CC 22 82 3E 5A 4B 0A 4E 3E 4F 3D 40
+70 4B 23 27 3D 40 4A 4B 1A E2 BE 1D A1 27 B5 23
+72 4B 3E 4F 3D 40 4A 4B B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 4E CB 3F D2 4A
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 44 46 4B AE 4B B2 41
+C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D 85 12
+BE 1D 08 45 04 51 55 49 54 00 82 43 08 18 31 40
+E0 1C B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44
+04 48 8C 47 42 4B 82 47 46 4B A4 44 0C 45 1E 48
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 4C
+14 48 30 FF A0 4A 26 45 1E 48 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 4C 3C 46 E0 4B C2 4A 05 41
+42 4F 52 54 3F 40 80 1C D0 3F 1E 4C 86 41 42 4F
+52 54 22 00 87 12 38 48 14 48 40 4C B0 4A 2A 44
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 51
+B0 12 B6 46 92 C3 DC 05 38 40 AA 0A 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 DC 05 F3 23 87 12
+42 51 14 48 DE 1D EA 44 AC 47 1E 48 04 1B 5B 37
+6D 00 D6 47 58 44 40 46 9A 4C 04 48 1E 48 05 6C
+69 6E 65 3A D6 47 D0 44 24 46 D6 47 1E 48 04 1B
+5B 30 6D 00 D6 47 24 4C 00 00 83 5B 27 5D 87 12
+C0 4C 14 48 14 48 B0 4A B0 4A 2A 44 E8 48 01 27
+87 12 42 4B 80 48 EE 48 40 46 CE 4C 2A 44 7A 4B
+32 45 81 5C 92 42 C0 1D C4 1D 30 4D AA 4C 81 5B
+82 43 BE 1D 30 4D D2 4C 01 5D B2 43 BE 1D 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 4A 82 49 53 00 87 12
+BE 4B EA 44 40 46 12 4D AE 4C 14 48 F0 4C B0 4A
+2A 44 C0 4C F0 4C 2A 44 FA 4C 09 49 4D 4D 45 44
+49 41 54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D
+C4 4B 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 4B
+80 48 EE 48 58 44 40 46 CE 4C 0C 45 40 46 5C 4D
+14 48 14 48 B0 4A B0 4A 14 48 B0 4A B0 4A 2A 44
+DE 4C 81 3B 82 93 BE 1D B5 27 87 12 14 48 2A 44
+B0 4A FA 4D E0 4C 2A 44 62 4D 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 4D 2F 83 8F 4E 00 00 1E 42 C6 1D
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 30 4D
+7A 4D 01 3A 30 12 A0 4D 92 B3 C6 1D A2 63 C6 1D
+87 12 42 4B 80 48 C8 4D 3D 41 08 4E 7A 4E 5A D3
 5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E
-3E 4F BA 40 30 40 00 00 BA 40 C4 4E 02 00 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D
-30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D
-A8 49 FE FF 89 48 00 00 30 4D 87 12 60 49 0F 73
-74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 48 4D
-BE 49 08 56 41 52 49 41 42 4C 45 00 B0 12 CE 4E
-BA 40 86 12 FC FF E4 3F 24 4C 08 43 4F 4E 53 54
-41 4E 54 00 B0 12 CE 4E BA 40 85 12 FC FF 8A 4E
-FE FF 3E 4F D5 3F 5A 4F 06 43 52 45 41 54 45 00
-B0 12 CE 4E BA 40 85 12 FC FF 8A 4A FE FF C8 3F
-92 4C 05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12
-00 00 8A 4D 02 00 3D 41 30 4D 92 4F 05 44 45 46
-45 52 30 12 20 4F 8B 3F 7C 4A 05 3E 42 4F 44 59
-2E 52 30 4D 78 4F 04 43 4F 44 45 00 B0 12 CE 4E
-2A 82 82 4A C6 1D 87 12 C0 4E A2 52 74 52 2A 44
-C6 4F 07 43 4F 44 45 4E 4E 4D 87 12 9A 4E DE 4D
-D0 4F 2A 44 00 00 07 45 4E 44 43 4F 44 45 87 12
-BC 52 12 4F 2A 44 28 4D 03 41 53 4D 92 42 DA 1D
-EC 1D B2 40 78 52 DA 1D D9 3F F6 4F 06 45 4E 44
-41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00 05 43
+3E 4F 82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F
+BC 1D 2A 52 82 4A C6 1D 30 41 82 9F BC 1D 09 20
+18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 48 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 4C 90 4B 05 44 45 46 45 52
+B0 12 B8 4D BA 40 30 40 FC FF BA 40 AE 4D FE FF
+E3 3F 1E 4B 06 43 52 45 41 54 45 00 B0 12 B8 4D
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 4E 05 44
+4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 49 05 3E 42 4F 44 59 2E 52
+30 4D 44 4E 04 43 4F 44 45 00 B0 12 B8 4D A2 82
+C6 1D 87 12 D2 50 AC 50 2A 44 84 4E 07 43 4F 44
+45 4E 4E 4D B0 12 86 4D F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 50 FA 4D 2A 44 2C 4C 03 41
+53 4D B2 40 B0 50 DA 1D E0 3F AC 4E 06 45 4E 44
+41 53 4D 00 87 12 B4 4E F4 50 2A 44 00 00 05 43
 4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53
-C6 1D B2 43 BE 1D 30 40 BC 52 00 00 05 4C 4F 32
+C6 1D B2 43 BE 1D 30 40 E0 50 00 00 05 4C 4F 32
 48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A 44
-02 00 A2 52 C6 1D ED 3F 18 4E 85 48 49 32 4C 4F
-87 12 F2 46 9A 50 D6 4B DE 4D A2 52 74 52 2A 44
-6A 50 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
-A2 52 C6 1D BE 40 28 47 00 00 2E 53 30 4D AC 4F
+02 00 A2 52 C6 1D ED 3F 1A 4D 85 48 49 32 4C 4F
+87 12 A0 4A 4A 4F B0 4A E0 4C D2 50 AC 50 2A 44
+1A 4F 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
+A2 52 C6 1D BE 40 40 46 00 00 2E 53 30 4D 5E 4E
 84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40
-24 47 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D 1C 49
+3C 46 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 47
 84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D
-E2 4F 85 42 45 47 49 4E 30 40 F2 46 C0 50 85 55
-4E 54 49 4C 39 40 28 47 A2 52 C6 1D 1A 42 C6 1D
-8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D 08 50 85 41
-47 41 49 4E 39 40 24 47 EF 3F 42 4F 85 57 48 49
-4C 45 87 12 86 50 78 44 2A 44 30 4E 86 52 45 50
-45 41 54 00 87 12 04 51 C6 50 2A 44 A0 50 82 44
+9C 4E 85 42 45 47 49 4E 30 40 A0 4A 70 4F 85 55
+4E 54 49 4C 39 40 40 46 A2 52 C6 1D 1A 42 C6 1D
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE 4E 85 41
+47 41 49 4E 39 40 3C 46 EF 3F 7A 48 85 57 48 49
+4C 45 87 12 36 4F 76 44 2A 44 34 48 86 52 45 50
+45 41 54 00 87 12 B4 4F 76 4F 2A 44 50 4F 82 44
 4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D
-BE 40 3C 47 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
-00 00 30 4D E8 4B 84 4C 4F 4F 50 00 39 40 5E 47
+BE 40 54 46 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
+00 00 30 4D E2 4A 84 4C 4F 4F 50 00 39 40 76 46
 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
 1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A
-00 00 F6 3F 3E 4F 30 4D 98 47 85 2B 4C 4F 4F 50
-39 40 4C 47 E5 3F 56 51 85 4C 45 41 56 45 1A 42
-C6 1D BA 40 6E 47 00 00 BA 40 24 47 02 00 B2 50
-06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C 89 4A
-00 00 30 4D 98 51 04 4D 4F 56 45 00 0A 4E 38 4F
-39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49
-00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 0C 51 0A 56
-4F 43 41 42 55 4C 41 52 59 00 87 12 80 4F 34 44
-10 00 34 44 00 00 3C 47 34 44 00 00 D6 4B 5E 47
-18 52 F2 46 34 44 C8 1D 44 44 F2 44 D6 4B FA 44
-98 4F 34 44 CA 1D FA 44 2A 44 BC 4D 05 46 4F 52
-54 48 84 12 32 52 9C 52 DC 55 DA 52 3C 52 82 50
-8A 51 06 54 CC 52 9C 54 E6 56 DE 50 4E 55 00 00
-DA 53 E6 4D BA 4F 00 00 FE 50 09 41 53 53 45 4D
-42 4C 45 52 84 12 32 52 D8 62 70 62 D4 61 66 5D
-0E 5C 8A 5D 9C 60 00 00 FE 63 10 64 66 5C A4 5C
-A4 62 00 00 00 00 98 5D 66 52 6A 52 04 41 4C 53
-4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F
-4A 4E 08 50 52 45 56 49 4F 55 53 00 3A 40 0E 00
-39 40 CC 1D 38 40 CA 1D 8A 3F AC 49 04 4F 4E 4C
-59 00 82 43 CC 1D 30 4D 2E 51 0B 44 45 46 49 4E
-49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D D2 50
-07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53
-F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D
-C8 4E 86 5B 54 48 45 4E 5D 00 30 4D 22 53 86 5B
-45 4C 53 45 5D 00 87 12 34 44 00 00 36 45 B0 45
-C4 49 2A 4C 44 44 28 47 9C 53 8A 44 8A 44 60 49
-06 5B 54 48 45 4E 5D 00 F8 52 32 47 6A 53 44 49
-40 45 54 44 32 47 3E 53 2A 44 8A 44 8A 44 60 49
-06 5B 45 4C 53 45 5D 00 F8 52 32 47 8A 53 44 49
-40 45 54 44 32 47 3C 53 2A 44 60 49 04 5B 49 46
-5D 00 F8 52 32 47 3E 53 24 47 3C 53 44 49 60 49
-05 0D 0A 6B 6F 20 22 49 A0 48 38 4C 24 47 3E 53
-2E 53 84 5B 49 46 5D 00 0E 93 3E 4F BC 27 30 4D
-B2 53 89 5B 44 45 46 49 4E 45 44 5D 87 12 B0 45
-C4 49 1C 4A 6C 44 2A 44 C2 53 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 87 12 B0 45 C4 49 1C 4A 6C 44
-64 45 2A 44 F6 53 3D 41 B2 4E 0E 18 A2 4E 0C 18
-3E 4F 44 3C C6 51 06 4D 41 52 4B 45 52 00 B0 12
-CE 4E BA 40 84 12 FC FF BA 40 F4 53 FE FF 9A 42
-C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40
-18 4F 42 52 D2 52 E6 52 3A 54 3A 4E 82 4A C8 1D
-2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83
-18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23
-2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D B2 52 09 50
-57 52 5F 53 54 41 54 45 84 12 32 54 98 52 46 64
-1C 51 09 52 53 54 5F 53 54 41 54 45 92 42 0E 18
-7C 54 92 42 0C 18 7E 54 EF 3F 6E 54 08 50 57 52
-5F 48 45 52 45 00 92 42 C8 1D 7C 54 92 42 C6 1D
-7E 54 30 4D 82 54 08 52 53 54 5F 48 45 52 45 00
-92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F FE 51
-04 57 49 50 45 00 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B2 40 2A 48 28 48 B2 40 58 55 56 55 B2 40
-98 52 0E 18 B2 40 46 64 0C 18 30 12 8C 54 B2 40
-90 48 8E 48 B2 40 54 49 52 49 B2 40 A0 47 9E 47
-B2 40 CC 47 CA 47 B2 40 3C 1D 9E 48 B2 40 18 00
-0A 18 37 40 1A 44 36 40 BC 44 35 40 0E 44 34 40
-00 44 39 40 10 00 29 83 89 43 E0 1D FC 23 B2 40
-0A 00 DC 1D B2 40 20 00 B4 1D 30 41 D0 54 04 57
-41 52 4D 00 30 40 58 55 3D 40 8C 55 92 C3 30 01
-1E 42 08 18 0E 93 11 24 D2 B3 01 02 02 20 3E E3
-1E 53 F2 D0 03 00 0D 02 3E 90 0A 00 AC 27 3E 90
-16 00 A9 2F 2E 93 78 27 81 2F 30 4D 60 49 06 0D
-1B 5B 37 6D 23 00 22 49 E2 46 60 49 1F 46 61 73
-74 46 6F 72 74 68 20 56 33 30 30 20 28 43 29 4A
-2E 4D 2E 54 68 6F 6F 72 65 6E 73 20 22 49 34 44
-80 FF F2 46 28 45 D2 46 60 49 0B 62 79 74 65 73
-20 66 72 65 65 20 24 47 98 4D F0 52 04 43 4F 4C
-44 00 92 B3 CA 05 FD 23 B2 40 04 A5 20 01 B2 40
-88 5A 5C 01 92 D3 04 02 B2 40 FE FF 02 02 92 C3
-06 02 B2 43 26 02 B2 43 22 02 E2 D3 25 02 F2 43
-22 03 F2 43 26 03 F2 40 A5 00 61 01 82 43 62 01
-82 43 66 01 39 40 10 00 B2 40 33 00 64 01 D2 43
-61 01 92 D2 9E 01 08 18 38 40 59 14 18 83 FE 23
-19 83 FA 23 B2 D2 B0 01 F2 D0 10 00 2A 03 F2 C0
-40 00 A1 04 39 40 00 FC 29 83 89 43 00 1C FC 23
-39 40 34 00 29 83 B9 40 EE 55 CC FF FB 23 B2 40
-30 48 F0 FF B2 40 81 00 C0 05 92 42 02 18 C6 05
-92 42 04 18 C8 05 92 C3 C0 05 92 D3 DA 05 3F 40
-80 1C 31 40 E0 1C 30 12 54 55 40 3F 38 40 C0 1D
-39 48 2A 48 09 5A 1A 52 C4 1D 09 9A 03 24 7E 9A
-FC 27 1A 83 0E 4A 2A 88 82 4A C4 1D 30 4D B6 54
-09 32 43 4F 4E 53 54 41 4E 54 87 12 80 4F D6 4B
-D6 4B 98 4F D6 56 2F 83 9F 4E 02 00 00 00 2E 4E
-3D 41 30 4D C0 56 09 32 56 41 52 49 41 42 4C 45
-87 12 80 4F 34 44 04 00 06 47 98 4F 2A 44 1C 15
-B0 12 2A 44 C4 49 1C 4A 32 47 14 57 D8 4A 28 47
-CC 4D 4C 57 16 57 29 4E 39 90 86 12 02 20 2E 53
-15 3C 39 90 85 12 03 20 1E 4E 02 00 0F 3C 39 90
-84 12 0C 20 2E 52 B9 90 D4 56 02 00 04 24 B9 90
-FC 56 02 00 03 20 B0 12 D6 56 4C 57 1B 17 30 41
-32 B0 00 02 01 24 3E 4F 30 41 3E 40 28 00 B0 12
-FE 56 B0 12 50 57 19 42 C6 1D A2 53 C6 1D 89 4E
+00 00 F6 3F 3E 4F 30 4D 90 46 85 2B 4C 4F 4F 50
+39 40 64 46 E5 3F 06 50 04 4D 4F 56 45 00 0A 4E
+38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
+F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 48
+CA 1D F2 44 2A 44 84 12 7E 50 AE 4F 4A 53 DE 4F
+BE 4C 32 4F 3A 50 5E 54 64 48 66 51 80 51 8E 4F
+00 52 00 00 30 54 E8 4C 78 4E 00 00 84 12 7E 50
+88 5B 7A 5B 30 59 52 5A F6 58 00 00 6C 5B 00 00
+EC 58 96 5B 4E 59 8C 59 36 57 00 00 00 00 2E 5A
+AA 50 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D C6 3F
+3A 40 0E 00 39 40 CC 1D 38 40 CA 1D B9 3F 82 43
+CC 1D 30 4D 92 42 CA 1D DA 1D 30 4D 86 50 EE 50
+F4 50 04 51 3A 4E 82 4A C8 1D 2E 4E 82 4E C6 1D
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 4D 09 50 57 52 5F 53 54 41
+54 45 84 12 FC 50 D0 50 A2 5B CC 4F 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 51 92 42 0C 18
+48 51 EF 3F 38 51 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 1D 46 51 92 42 C6 1D 48 51 30 4D 4C 51
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 1D 0E 18
+92 42 C6 1D 0C 18 EC 3F BC 4F 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 46
+DE 46 B2 40 0A 52 08 52 B2 40 D0 50 0E 18 B2 40
+A2 5B 0C 18 30 12 56 51 B2 40 86 47 84 47 B2 40
+08 48 06 48 B2 40 98 46 96 46 B2 40 18 00 0A 18
+37 40 1A 44 36 40 92 44 35 40 0E 44 34 40 00 44
+B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41 9A 51
+04 57 41 52 4D 00 30 40 0A 52 3D 40 3E 52 92 C3
+30 01 1E 42 08 18 0E 93 11 24 D2 B3 01 02 02 20
+3E E3 1E 53 F2 D0 03 00 0D 02 3E 90 0A 00 B8 27
+3E 90 16 00 B5 2F 2E 93 84 27 8D 2F 30 4D 1E 48
+06 0D 1B 5B 37 6D 23 00 D6 47 34 46 1E 48 19 46
+61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54
+68 6F 6F 72 65 6E 73 20 D6 47 14 48 30 FF A0 4A
+B8 44 24 46 1E 48 0A 62 79 74 65 73 20 66 72 65
+65 00 3C 46 9A 4C 82 4F 04 43 4F 4C 44 00 92 B3
+CA 05 FD 23 B2 40 04 A5 20 01 3E 52 B2 40 88 5A
+5C 01 B2 40 FE FF 02 02 B2 D3 06 02 B2 D3 26 02
+B2 40 FF BF 22 02 E2 D3 25 02 F2 43 22 03 F2 D3
+26 03 F2 40 A5 00 61 01 82 43 62 01 82 43 66 01
+39 40 10 00 B2 40 33 00 64 01 D2 43 61 01 92 D2
+9E 01 08 18 38 40 59 14 18 83 FE 23 19 83 FA 23
+B2 D2 B0 01 F2 D0 10 00 2A 03 F2 C0 40 00 A1 04
+39 40 00 08 29 83 89 43 00 1C FC 23 39 40 34 00
+29 83 B9 40 9C 52 CC FF FB 23 B2 40 26 47 F0 FF
+B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
+C8 05 92 C3 C0 05 92 D3 DA 05 3F 40 80 1C 31 40
+E0 1C 30 12 06 52 49 3F 88 52 07 43 4F 4D 50 41
+52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C 0C 24
+1B 83 07 30 1C 83 07 30 19 53 F9 98 FF FF F5 27
+02 2C 3E 43 30 4D 1E 43 30 4D B2 4D 86 5B 54 48
+45 4E 5D 00 30 4D 7C 53 86 5B 45 4C 53 45 5D 00
+87 12 14 48 00 00 C6 44 42 4B 80 48 24 4B 34 44
+40 46 F2 53 44 44 1E 48 06 5B 54 48 45 4E 5D 00
+52 53 4A 46 C2 53 F8 47 D0 44 58 44 4A 46 98 53
+2A 44 44 44 1E 48 06 5B 45 4C 53 45 5D 00 52 53
+4A 46 E0 53 F8 47 D0 44 58 44 4A 46 96 53 2A 44
+1E 48 04 5B 49 46 5D 00 52 53 4A 46 98 53 3C 46
+96 53 F8 47 1E 48 05 0D 0A 6B 6F 20 D6 47 8C 47
+32 4B 3C 46 98 53 88 53 84 5B 49 46 5D 00 0E 93
+3E 4F BE 27 30 4D 08 54 89 5B 44 45 46 49 4E 45
+44 5D 87 12 42 4B 80 48 EE 48 6A 44 2A 44 18 54
+8B 5B 55 4E 44 45 46 49 4E 45 44 5D 87 12 42 4B
+80 48 EE 48 6A 44 00 45 2A 44 4C 54 3D 41 B2 4E
+0E 18 A2 4E 0C 18 3E 4F 30 40 56 51 48 50 06 4D
+41 52 4B 45 52 00 B0 12 B8 4D BA 40 84 12 FC FF
+BA 40 4A 54 FE FF 9A 42 C8 1D 00 00 28 83 8A 48
+02 00 A2 52 C6 1D 30 40 00 4E 1C 15 B0 12 2A 44
+80 48 EE 48 4A 46 A0 54 AA 49 40 46 CE 4C BA 54
+A2 54 39 4E 39 80 86 12 08 24 19 53 02 20 2E 4E
+04 3C 2E 53 19 53 01 24 2E 82 1B 17 30 41 3E 40
+28 00 B0 12 8A 54 19 42 C6 1D A2 53 C6 1D 89 4E
 00 00 3E 40 29 00 1C 15 12 12 C4 1D 92 53 C4 1D
-B0 12 2A 44 C4 49 D8 4A 28 47 98 57 8E 57 21 53
-3E 90 10 00 87 2D DA 2B 9A 57 B2 41 C4 1D D6 3F
-87 12 B0 45 9C 56 A8 57 0C 43 1B 42 C6 1D A2 53
-C6 1D 6A 4E 3E 4F 7A 90 23 00 2F 20 92 53 C4 1D
-B0 12 FE 56 B0 12 50 57 0E 93 03 20 3C 40 00 03
-21 3C 1E 93 03 20 3C 40 10 03 1C 3C 2E 93 03 20
-3C 40 20 03 17 3C 2E 92 03 20 3C 40 20 02 12 3C
-3E 92 03 20 3C 40 30 02 0D 3C 3E 93 03 20 3C 40
-30 03 08 3C 3C 40 30 00 19 42 C6 1D A2 53 C6 1D
-89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00 09 20
-3C 40 10 02 92 53 C4 1D B0 12 FE 56 B0 12 50 57
-EB 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D
-B0 12 76 57 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-76 57 92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10
-0C 5E D8 3F B0 12 76 57 FA 23 3C 50 10 00 B0 12
-5A 57 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 87 12
-B0 45 9C 56 86 58 FE 90 26 00 00 00 3E 40 20 00
-03 20 3C 50 82 00 C6 3F B0 12 76 57 E1 23 3C 50
-80 00 B0 12 5A 57 DC 3F 20 48 04 52 45 54 49 00
-87 12 34 44 00 13 D6 4B 2A 44 34 44 2C 00 A0 57
-7E 58 C4 58 2E 4E 0E DC 09 4B A2 3F 4C 50 03 4D
-4F 56 84 12 BA 58 00 40 CE 58 05 4D 4F 56 2E 42
-84 12 BA 58 40 40 00 00 03 41 44 44 84 12 BA 58
-00 50 E8 58 05 41 44 44 2E 42 84 12 BA 58 40 50
-F4 58 04 41 44 44 43 00 84 12 BA 58 00 60 02 59
-06 41 44 44 43 2E 42 00 84 12 BA 58 40 60 AA 58
-04 53 55 42 43 00 84 12 BA 58 00 70 20 59 06 53
-55 42 43 2E 42 00 84 12 BA 58 40 70 2E 59 03 53
-55 42 84 12 BA 58 00 80 3E 59 05 53 55 42 2E 42
-84 12 BA 58 40 80 2E 50 03 43 4D 50 84 12 BA 58
-00 90 58 59 05 43 4D 50 2E 42 84 12 BA 58 40 90
-1C 50 04 44 41 44 44 00 84 12 BA 58 00 A0 72 59
-06 44 41 44 44 2E 42 00 84 12 BA 58 40 A0 64 59
-03 42 49 54 84 12 BA 58 00 B0 90 59 05 42 49 54
-2E 42 84 12 BA 58 40 B0 9C 59 03 42 49 43 84 12
-BA 58 00 C0 AA 59 05 42 49 43 2E 42 84 12 BA 58
-40 C0 B6 59 03 42 49 53 84 12 BA 58 00 D0 C4 59
-05 42 49 53 2E 42 84 12 BA 58 40 D0 00 00 03 58
-4F 52 84 12 BA 58 00 E0 DE 59 05 58 4F 52 2E 42
-84 12 BA 58 40 E0 10 59 03 41 4E 44 84 12 BA 58
-00 F0 F8 59 05 41 4E 44 2E 42 84 12 BA 58 40 F0
-B0 45 A0 57 16 5A 0A 4C 3C F0 70 00 8A 10 3A F0
-0F 00 0C DA 4F 3F 4A 59 03 52 52 43 84 12 10 5A
-00 10 28 5A 05 52 52 43 2E 42 84 12 10 5A 40 10
-34 5A 04 53 57 50 42 00 84 12 10 5A 80 10 42 5A
-03 52 52 41 84 12 10 5A 00 11 50 5A 05 52 52 41
-2E 42 84 12 10 5A 40 11 5C 5A 03 53 58 54 84 12
-10 5A 80 11 00 00 04 50 55 53 48 00 84 12 10 5A
-00 12 76 5A 06 50 55 53 48 2E 42 00 84 12 10 5A
-40 12 D0 59 04 43 41 4C 4C 00 84 12 10 5A 80 12
-1A 53 0E 4A 87 12 E2 46 60 49 0D 6F 75 74 20 6F
-66 20 62 6F 75 6E 64 73 48 4D B0 45 9C 56 C0 5A
-92 53 C4 1D 3E 40 2C 00 B0 12 2A 44 C4 49 D8 4A
-28 47 CC 4D 74 58 D8 5A 0A 4E 3E 4F 1A 83 E0 33
-29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
-38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10
-5A 06 8F 3F 6A 5A 06 52 52 43 4D 2E 41 00 84 12
-BA 5A 40 00 06 5B 04 52 52 43 4D 00 84 12 BA 5A
-50 00 16 5B 06 52 52 41 4D 2E 41 00 84 12 BA 5A
-40 01 24 5B 04 52 52 41 4D 00 84 12 BA 5A 50 01
-34 5B 06 52 4C 41 4D 2E 41 00 84 12 BA 5A 40 02
-42 5B 04 52 4C 41 4D 00 84 12 BA 5A 50 02 52 5B
-06 52 52 55 4D 2E 41 00 84 12 BA 5A 40 03 60 5B
-04 52 52 55 4D 00 84 12 BA 5A 50 03 84 5A 07 50
-55 53 48 4D 2E 41 84 12 BA 5A 00 14 7E 5B 05 50
-55 53 48 4D 84 12 BA 5A 00 15 8E 5B 06 50 4F 50
-4D 2E 41 00 84 12 BA 5A 00 16 9C 5B 04 50 4F 50
-4D 00 84 12 BA 5A 00 17 85 12 00 3C 70 5B 03 53
-3E 3D 85 12 00 38 BE 5B 02 53 3C 00 85 12 00 34
-AC 5B 03 30 3E 3D 85 12 00 30 D2 5B 02 30 3C 00
-85 12 00 30 00 00 02 55 3C 00 85 12 00 2C E6 5B
-03 55 3E 3D 85 12 00 28 DC 5B 03 30 3C 3E 85 12
-00 24 FA 5B 02 30 3D 00 85 12 00 20 00 00 02 49
-46 00 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 0E 4A
-30 4D F0 5B 04 54 48 45 4E 00 1A 42 C6 1D 08 4E
-3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 31 2F
-88 DA 00 00 30 4D 80 59 04 45 4C 53 45 00 1A 42
-C6 1D BA 40 00 3C 00 00 A2 53 C6 1D 2F 83 8F 4A
-00 00 E3 3F 24 5C 05 55 4E 54 49 4C 3A 4F 08 4E
-3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11 3A 90 00 FE
-10 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D
-30 4D 04 5A 05 41 47 41 49 4E 87 12 B8 5B 6C 5C
-2A 44 00 00 05 57 48 49 4C 45 87 12 12 5C 78 44
-2A 44 C8 5B 06 52 45 50 45 41 54 00 87 12 B8 5B
-6C 5C 2A 5C 2A 44 C8 5C 3D 41 2E 4E 08 4E 3E 4F
-2A 48 0A 93 88 43 00 00 CA 23 98 42 C6 1D 00 00
-30 4D 94 5A 03 42 57 31 84 12 C6 5C E0 1D E4 5C
-03 42 57 32 84 12 C6 5C E2 1D F0 5C 03 42 57 33
-84 12 C6 5C E4 1D 08 5D 3D 41 1A 42 C6 1D 2E 4E
-28 4E 08 93 8E 43 00 00 8B 23 BA 4F 00 00 A2 53
-C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-84 12 06 5D E6 1D 2C 5D 03 46 57 32 84 12 06 5D
-E8 1D 38 5D 03 46 57 33 84 12 06 5D EA 1D 3E 90
-00 30 07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0
-00 08 30 4D 44 5D 04 47 4F 54 4F 00 87 12 B8 5B
-BE 4D CC 4B 2A 44 00 00 05 3F 47 4F 54 4F 87 12
-4E 5D BE 4D CC 4B 2A 44 00 00 03 4A 4D 50 87 12
-BE 4D 9A 5C 2A 44 78 5D 04 3F 4A 4D 50 00 87 12
-4E 5D BE 4D 78 44 6C 5C 2A 44 87 12 B0 45 9C 56
-B2 5D 69 4E 3E 4F 3C 4F 2C 4C 1B 42 C6 1D A2 53
-C6 1D 79 90 52 00 0A 20 B0 12 76 57 5E 0E 5E 0E
-0E DC 8B 4E 00 00 0E 4B 3D 41 30 4D 79 90 23 00
-0D 20 3C C0 40 00 92 53 C4 1D A2 53 C6 1D B0 12
-FE 56 BB 4F 02 00 3E F0 0F 00 E8 3F 79 90 26 00
-03 20 3C E0 E0 00 EF 3F 3C C0 F0 00 79 90 40 00
-12 20 92 53 C4 1D B0 12 76 57 D8 23 3C D0 10 00
-3E 40 2B 00 B0 12 76 57 92 92 C0 1D C4 1D CE 27
-92 53 C4 1D CB 3F 3C D0 30 00 A2 53 C6 1D 3E 40
-28 00 B0 12 FE 56 BB 4F 02 00 3E 40 29 00 EA 3F
-87 12 B0 45 9C 56 58 5E 3B 4F 2C 4B 69 4E 7E 40
-20 00 79 90 52 00 03 20 B0 12 76 57 B1 3F 3C C0
-F0 00 A2 53 C6 1D 79 90 26 00 09 20 3C D0 60 00
-92 53 C4 1D B0 12 FE 56 BB 4F 02 00 A1 3F 3C D0
-70 00 3E 40 28 00 B0 12 FE 56 BB 4F 02 00 3E 40
-29 00 E2 3F 34 44 2C 00 AA 5D 50 5E 62 44 2A 44
-DA 58 04 4D 4F 56 41 00 84 12 A4 5E C0 00 FC 5C
-04 43 4D 50 41 00 84 12 A4 5E D0 00 94 5C 04 41
-44 44 41 00 84 12 A4 5E E0 00 B4 5C 04 53 55 42
-41 00 84 12 A4 5E F0 00 C0 5E 05 43 41 4C 4C 41
-87 12 B0 45 9C 56 F8 5E 1B 42 C6 1D A2 53 C6 1D
-6E 4E 3C 40 34 01 7E 90 52 00 0B 20 7E 40 20 00
-B0 12 76 57 5C 0E 0C DE 8B 4C 00 00 3E 4F 3D 41
-30 4D 2C 53 7E 90 40 00 0B 20 92 53 C4 1D 7E 40
-20 00 B0 12 76 57 EE 23 1C 53 3E 40 2B 00 E8 3F
-A2 53 C6 1D 7E 90 23 00 09 20 3C 40 3B 01 92 53
-C4 1D B0 12 FE 56 BB 4F 02 00 DC 3F 7E 90 26 00
-02 20 2C 53 F4 3F 7E 40 28 00 1C 83 B0 12 FE 56
-BB 4F 02 00 3E 40 29 00 CB 3F 87 12 B0 45 9C 56
-82 5F 69 4E 3E 4F 3C 40 00 18 79 90 52 00 05 20
-B0 12 76 57 0E 4C 3D 41 30 4D 82 43 EE 1D 79 90
-23 00 0B 20 92 53 C4 1D B0 12 FE 56 2F 53 3E F0
-0F 00 5E 0A 5E 0E 0C DE ED 3F 79 90 26 00 F2 27
-79 90 40 00 12 20 92 53 C4 1D B0 12 76 57 E2 23
-3E 40 2B 00 92 53 C4 1D B0 12 76 57 92 92 C0 1D
-C4 1D D8 27 92 53 C4 1D D5 3F 3E 40 28 00 B0 12
-FE 56 8F 4E 00 00 3E 40 29 00 B0 12 76 57 3E 4F
-3E F0 0F 00 0C DE EA 3F 87 12 B0 45 9C 56 10 60
-3C 4F 69 4E 3E 40 20 00 79 90 52 00 BB 27 82 43
-EE 1D 79 90 26 00 08 20 92 53 C4 1D B0 12 FE 56
-2F 53 3E F0 0F 00 BF 3F 3E 40 28 00 B0 12 FE 56
-F7 3F 1B 42 C6 1D A2 53 C6 1D 0C 4E 3E 4F 1C D2
-EE 1D 82 43 EE 1D 3C DE 8B 4C 00 00 B2 41 C4 1D
-30 4D 34 44 C4 1D F2 44 B0 44 34 44 2C 00 7A 5F
-08 60 42 60 24 47 BA 58 B2 5E 04 4D 4F 56 58 00
-84 12 62 60 40 00 00 40 7A 60 06 4D 4F 56 58 2E
-41 00 84 12 62 60 00 00 40 40 8A 60 06 4D 4F 56
-58 2E 42 00 84 12 62 60 40 00 40 40 CE 5E 04 41
-44 44 58 00 84 12 62 60 40 00 00 50 AE 60 06 41
-44 44 58 2E 41 00 84 12 62 60 00 00 40 50 BE 60
-06 41 44 44 58 2E 42 00 84 12 62 60 40 00 40 50
-D0 60 05 41 44 44 43 58 84 12 62 60 40 00 00 60
-E2 60 07 41 44 44 43 58 2E 41 84 12 62 60 00 00
-40 60 F2 60 07 41 44 44 43 58 2E 42 84 12 62 60
-40 00 40 60 DC 5E 05 53 55 42 43 58 84 12 62 60
-40 00 00 70 16 61 07 53 55 42 43 58 2E 41 84 12
-62 60 00 00 40 70 26 61 07 53 55 42 43 58 2E 42
-84 12 62 60 40 00 40 70 38 61 04 53 55 42 58 00
-84 12 62 60 40 00 00 80 4A 61 06 53 55 42 58 2E
-41 00 84 12 62 60 00 00 40 80 5A 61 06 53 55 42
-58 2E 42 00 84 12 62 60 40 00 40 80 EA 5E 04 43
-4D 50 58 00 84 12 62 60 40 00 00 90 7E 61 06 43
-4D 50 58 2E 41 00 84 12 62 60 00 00 40 90 8E 61
-06 43 4D 50 58 2E 42 00 84 12 62 60 40 00 40 90
-48 5C 05 44 41 44 44 58 84 12 62 60 40 00 00 A0
-B2 61 07 44 41 44 44 58 2E 41 84 12 62 60 00 00
-40 A0 C2 61 07 44 41 44 44 58 2E 42 84 12 62 60
-40 00 40 A0 A0 61 04 42 49 54 58 00 84 12 62 60
-40 00 00 B0 E6 61 06 42 49 54 58 2E 41 00 84 12
-62 60 00 00 40 B0 F6 61 06 42 49 54 58 2E 42 00
-84 12 62 60 40 00 40 B0 08 62 04 42 49 43 58 00
-84 12 62 60 40 00 00 C0 1A 62 06 42 49 43 58 2E
-41 00 84 12 62 60 00 00 40 C0 2A 62 06 42 49 43
-58 2E 42 00 84 12 62 60 40 00 40 C0 3C 62 04 42
-49 53 58 00 84 12 62 60 40 00 00 D0 4E 62 06 42
-49 53 58 2E 41 00 84 12 62 60 00 00 40 D0 5E 62
-06 42 49 53 58 2E 42 00 84 12 62 60 40 00 40 D0
-EA 59 04 58 4F 52 58 00 84 12 62 60 40 00 00 E0
-82 62 06 58 4F 52 58 2E 41 00 84 12 62 60 00 00
-40 E0 92 62 06 58 4F 52 58 2E 42 00 84 12 62 60
-40 00 40 E0 04 61 04 41 4E 44 58 00 84 12 62 60
-40 00 00 F0 B6 62 06 41 4E 44 58 2E 41 00 84 12
-62 60 00 00 40 F0 C6 62 06 41 4E 44 58 2E 42 00
-84 12 62 60 40 00 40 F0 34 44 C4 1D F2 44 B0 44
-B0 45 7A 5F 42 60 24 47 10 5A 6C 61 04 52 52 43
-58 00 84 12 E8 62 40 00 00 10 FC 62 06 52 52 43
-58 2E 41 00 84 12 E8 62 00 00 40 10 0C 63 06 52
-52 43 58 2E 42 00 84 12 E8 62 40 00 40 10 1E 63
-04 52 52 55 58 00 84 12 E8 62 40 01 00 10 30 63
-06 52 52 55 58 2E 41 00 84 12 E8 62 00 01 40 10
-40 63 06 52 52 55 58 2E 42 00 84 12 E8 62 40 01
-40 10 52 63 05 53 57 50 42 58 84 12 E8 62 40 00
-80 10 64 63 07 53 57 50 42 58 2E 41 84 12 E8 62
-00 00 80 10 74 63 04 52 52 41 58 00 84 12 E8 62
-40 00 00 11 86 63 06 52 52 41 58 2E 41 00 84 12
-E8 62 00 00 40 11 96 63 06 52 52 41 58 2E 42 00
-84 12 E8 62 40 00 40 11 A8 63 04 53 58 54 58 00
-84 12 E8 62 40 00 80 11 BA 63 06 53 58 54 58 2E
-41 00 84 12 E8 62 00 00 80 11 04 5C 05 50 55 53
-48 58 84 12 E8 62 40 00 00 12 DC 63 07 50 55 53
-48 58 2E 41 84 12 E8 62 00 00 40 12 EC 63 07 50
-55 53 48 58 2E 42 84 12 E8 62 40 00 40 12 CA 63
-03 52 50 54 87 12 B0 45 9C 56 1C 64 29 4E 7E 40
-20 00 79 90 52 00 06 20 B0 12 76 57 03 24 3E D0
-80 00 04 3C B0 12 FE 56 3E F0 0F 00 82 4E EE 1D
-3E 4F 3D 41 30 4D
+B0 12 2A 44 80 48 AA 49 40 46 F8 54 EE 54 21 53
+3E 90 10 00 7D 2D E1 2B FA 54 B2 41 C4 1D DD 3F
+87 12 42 4B 74 48 08 55 0C 43 1B 42 C6 1D A2 53
+C6 1D 6A 4E 3E 4F 7A 90 23 00 27 20 92 53 C4 1D
+B0 12 8A 54 3C 40 00 03 0E 93 1C 24 3C 40 10 03
+1E 93 18 24 3C 40 20 03 2E 93 14 24 3C 40 20 02
+2E 92 10 24 3C 40 30 02 3E 92 0C 24 3C 40 30 03
+3E 93 08 24 3C 40 30 00 19 42 C6 1D A2 53 C6 1D
+89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00 07 20
+3C 40 10 02 92 53 C4 1D B0 12 8A 54 ED 3F 7A 90
+40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12 D6 54
+0C 20 3C 50 10 00 3E 40 2B 00 B0 12 D6 54 92 92
+C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E DA 3F
+B0 12 D6 54 FA 23 3C 50 10 00 B0 12 BE 54 EF 3F
+0C 43 1B 42 C6 1D A2 53 C6 1D 87 12 42 4B 74 48
+D2 55 FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
+82 00 C8 3F B0 12 D6 54 E1 23 3C 50 80 00 B0 12
+BE 54 DC 3F D6 46 04 52 45 54 49 00 87 12 14 48
+00 13 B0 4A 2A 44 14 48 2C 00 00 55 CA 55 10 56
+09 4B 2E 4E 0E DC A4 3F FC 4E 03 4D 4F 56 84 12
+06 56 00 40 1A 56 05 4D 4F 56 2E 42 84 12 06 56
+40 40 00 00 03 41 44 44 84 12 06 56 00 50 34 56
+05 41 44 44 2E 42 84 12 06 56 40 50 40 56 04 41
+44 44 43 00 84 12 06 56 00 60 4E 56 06 41 44 44
+43 2E 42 00 84 12 06 56 40 60 F6 55 04 53 55 42
+43 00 84 12 06 56 00 70 6C 56 06 53 55 42 43 2E
+42 00 84 12 06 56 40 70 7A 56 03 53 55 42 84 12
+06 56 00 80 8A 56 05 53 55 42 2E 42 84 12 06 56
+40 80 DE 4E 03 43 4D 50 84 12 06 56 00 90 A4 56
+05 43 4D 50 2E 42 84 12 06 56 40 90 CC 4E 04 44
+41 44 44 00 84 12 06 56 00 A0 BE 56 06 44 41 44
+44 2E 42 00 84 12 06 56 40 A0 B0 56 03 42 49 54
+84 12 06 56 00 B0 DC 56 05 42 49 54 2E 42 84 12
+06 56 40 B0 E8 56 03 42 49 43 84 12 06 56 00 C0
+F6 56 05 42 49 43 2E 42 84 12 06 56 40 C0 02 57
+03 42 49 53 84 12 06 56 00 D0 10 57 05 42 49 53
+2E 42 84 12 06 56 40 D0 00 00 03 58 4F 52 84 12
+06 56 00 E0 2A 57 05 58 4F 52 2E 42 84 12 06 56
+40 E0 5C 56 03 41 4E 44 84 12 06 56 00 F0 44 57
+05 41 4E 44 2E 42 84 12 06 56 40 F0 42 4B 00 55
+62 57 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
+4F 3F 96 56 03 52 52 43 84 12 5C 57 00 10 74 57
+05 52 52 43 2E 42 84 12 5C 57 40 10 80 57 04 53
+57 50 42 00 84 12 5C 57 80 10 8E 57 03 52 52 41
+84 12 5C 57 00 11 9C 57 05 52 52 41 2E 42 84 12
+5C 57 40 11 A8 57 03 53 58 54 84 12 5C 57 80 11
+00 00 04 50 55 53 48 00 84 12 5C 57 00 12 C2 57
+06 50 55 53 48 2E 42 00 84 12 5C 57 40 12 1C 57
+04 43 41 4C 4C 00 84 12 5C 57 80 12 1A 53 0E 4A
+87 12 34 46 1E 48 0D 6F 75 74 20 6F 66 20 62 6F
+75 6E 64 73 4C 4C 42 4B 74 48 0C 58 92 53 C4 1D
+3E 40 2C 00 B0 12 2A 44 80 48 AA 49 40 46 CE 4C
+C0 55 24 58 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F
+B6 57 04 52 52 43 4D 00 84 12 06 58 50 00 52 58
+04 52 52 41 4D 00 84 12 06 58 50 01 60 58 04 52
+4C 41 4D 00 84 12 06 58 50 02 6E 58 04 52 52 55
+4D 00 84 12 06 58 50 03 D0 57 05 50 55 53 48 4D
+84 12 06 58 00 15 8A 58 04 50 4F 50 4D 00 84 12
+06 58 00 17 7C 58 03 53 3E 3D 85 12 00 38 A6 58
+02 53 3C 00 85 12 00 34 98 58 03 30 3E 3D 85 12
+00 30 BA 58 02 30 3C 00 85 12 00 30 00 00 02 55
+3C 00 85 12 00 2C CE 58 03 55 3E 3D 85 12 00 28
+C4 58 03 30 3C 3E 85 12 00 24 E2 58 02 30 3D 00
+85 12 00 20 00 00 02 49 46 00 1A 42 C6 1D 8A 4E
+00 00 A2 53 C6 1D 0E 4A 30 4D D8 58 04 54 48 45
+4E 00 1A 42 C6 1D 08 4E 3E 4F 09 48 29 53 0A 89
+0A 11 3A 90 00 02 63 2F 88 DA 00 00 30 4D CC 56
+04 45 4C 53 45 00 1A 42 C6 1D BA 40 00 3C 00 00
+A2 53 C6 1D 2F 83 8F 4A 00 00 E3 3F 0C 59 05 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83
+0A 89 0A 11 3A 90 00 FE 42 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C6 1D 30 4D 50 57 05 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49
+4C 45 87 12 FA 58 76 44 2A 44 B0 58 06 52 45 50
+45 41 54 00 87 12 82 59 12 59 2A 44 AE 59 3D 41
+08 4E 3E 4F 2A 48 B2 92 C4 1D CD 2F 98 42 C6 1D
+00 00 30 4D E0 57 03 42 57 31 84 12 AC 59 00 00
+C6 59 03 42 57 32 84 12 AC 59 00 00 D2 59 03 42
+57 33 84 12 AC 59 00 00 EA 59 3D 41 1A 42 C6 1D
+28 4E B2 92 C4 1D 90 2B BA 4F 00 00 A2 53 C6 1D
+8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12
+E8 59 00 00 0A 5A 03 46 57 32 84 12 E8 59 00 00
+16 5A 03 46 57 33 84 12 E8 59 00 00 00 00 05 3F
+47 4F 54 4F 3E 90 00 30 07 24 3E E0 00 04 3E B0
+00 10 02 24 3E E0 00 08 87 12 C0 4C DA 4A 2A 44
+22 5A 04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
+00 3C F2 3F 87 12 42 4B 74 48 6C 5A 69 4E 3E 4F
+3C 4F 2C 4C 1B 42 C6 1D A2 53 C6 1D 79 90 52 00
+0A 20 B0 12 D6 54 5E 0E 5E 0E 0E DC 8B 4E 00 00
+0E 4B 3D 41 30 4D 79 90 23 00 0D 20 3C C0 40 00
+92 53 C4 1D A2 53 C6 1D B0 12 8A 54 BB 4F 02 00
+3E F0 0F 00 E8 3F 79 90 26 00 03 20 3C E0 E0 00
+EF 3F 3C C0 F0 00 79 90 40 00 12 20 92 53 C4 1D
+B0 12 D6 54 D8 23 3C D0 10 00 3E 40 2B 00 B0 12
+D6 54 92 92 C0 1D C4 1D CE 27 92 53 C4 1D CB 3F
+3C D0 30 00 A2 53 C6 1D 3E 40 28 00 B0 12 8A 54
+BB 4F 02 00 3E 40 29 00 EA 3F 87 12 42 4B 74 48
+12 5B 3B 4F 2C 4B 69 4E 7E 40 20 00 79 90 52 00
+03 20 B0 12 D6 54 B1 3F 3C C0 F0 00 A2 53 C6 1D
+79 90 26 00 09 20 3C D0 60 00 92 53 C4 1D B0 12
+8A 54 BB 4F 02 00 A1 3F 3C D0 70 00 3E 40 28 00
+B0 12 8A 54 BB 4F 02 00 3E 40 29 00 E2 3F 14 48
+2C 00 64 5A 0A 5B 66 44 2A 44 26 56 04 4D 4F 56
+41 00 84 12 5E 5B C0 00 DE 59 04 43 4D 50 41 00
+84 12 5E 5B D0 00 7C 59 04 41 44 44 41 00 84 12
+5E 5B E0 00 9C 59 04 53 55 42 41 00 84 12 5E 5B
+F0 00
 @FFFE
-EE 55
+9C 52
 q
diff --git a/binaries/MSP_EXP430FR5969_4MHz.txt b/binaries/MSP_EXP430FR5969_4MHz.txt
deleted file mode 100644 (file)
index 9bd3cd0..0000000
+++ /dev/null
@@ -1,524 +0,0 @@
-@1800
-10 00 02 00 21 BB A0 0F 05 00 18 00 48 64 98 52
-2C 01 7F B0 00 48 12 48
-@4400
-2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
-8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 44
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 44 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 44 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 44 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 44 02 3E 52 00
-0E 12 3E 4F 30 4D 96 44 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 44 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 44 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 44 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 45 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 44 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 45 02 31 2D 00
-1E 83 30 4D D8 44 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 45
-02 30 3D 00 1E 83 0E 7E 30 4D 60 45 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 45 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 44 01 3E 3E 8F F4 3B EB 37 0E 45 02 42 4C 00
-85 12 20 00 AC 45 04 42 41 53 45 00 85 12 DC 1D
-C8 44 05 53 54 41 54 45 85 12 BE 1D 96 45 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 45 06 55 4D 2F
-4D 4F 44 00 30 12 62 44 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 44 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 45
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 45 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 46
-02 23 53 00 87 12 32 46 6A 46 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 46 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 45 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 45
-02 44 2E 00 87 12 D2 45 44 44 B0 44 4C 45 64 46
-BC 44 A2 46 7E 46 22 49 EA 48 2A 44 DC 45 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 44
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 46 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 44
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A 46
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 46 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 46 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 45 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 47 03 4B 45 59 30 40 A0 47
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 00 48 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 12 48 30 4D 00 47
-06 41 43 43 45 50 54 00 30 40 CC 47 3C 40 6E 48
-3B 40 38 48 2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00
-3C 40 20 00 3D 40 62 48 92 B3 DC 05 05 24 18 42
-CC 05 38 90 0A 00 04 20 21 53 39 40 26 48 4D 15
-A2 B3 DC 05 FD 27 B2 40 11 00 CE 05 E2 C3 23 02
-30 41 B2 40 13 00 CE 05 E2 D3 23 02 30 41 00 00
-05 53 4C 45 45 50 30 40 2A 48 12 D2 0A 18 FB 3F
-21 52 3A 17 58 42 CC 05 48 9C 08 2C 48 9B E9 27
-78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24
-CE 48 00 00 1E 53 A2 B3 DC 05 FD 27 82 48 CE 05
-30 4D 64 48 2D 83 92 B3 DC 05 E4 23 FC 27 82 93
-DE 1D 02 24 92 53 DE 1D 3E 8F 3D 41 B2 40 18 00
-0A 18 30 4D B0 46 04 45 4D 49 54 00 30 40 90 48
-08 4E 3E 4F E0 3F 10 47 03 43 49 42 85 12 3C 1D
-3F 80 06 00 8F 4E 04 00 3E 40 54 00 9F 42 9E 48
-00 00 AF 4F 02 00 88 3F 86 48 04 45 43 48 4F 00
-B2 40 82 48 5C 48 82 43 DE 1D 30 4D E0 46 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 5C 48 92 43 DE 1D
-30 4D 9C 46 05 53 50 41 43 45 2F 83 8F 4E 00 00
-3E 40 20 00 CB 3F E4 48 06 53 50 41 43 45 53 00
-0E 93 09 24 0D 12 3D 40 0C 49 EF 3F 0E 49 2D 83
-1E 83 EB 23 3D 41 3E 4F 30 4D 66 47 04 54 59 50
-45 00 0E 93 0F 24 1E 15 3D 40 38 49 28 4F 7E 48
-8F 48 00 00 2F 83 AA 3F 3A 49 2D 83 91 83 02 00
-F5 23 1D 17 2F 53 3E 4F 30 4D 98 48 02 43 52 00
-30 40 54 49 87 12 60 49 02 0D 0A 00 22 49 2A 44
-2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
-0D 63 30 4D F8 48 82 53 22 00 82 43 B4 1D 87 12
-34 44 60 49 D6 4B 34 44 22 00 C4 49 8E 49 3D 41
-B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D 3E 4F
-92 B3 C6 1D A2 63 C6 1D 30 4D CE 48 82 2E 22 00
-87 12 7A 49 34 44 22 49 D6 4B 2A 44 00 00 04 57
-4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A 3A 5C
-28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40 60 00
-C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24 18 53
-4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D F0 3F
-1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E CE 48
-00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83 0C 4E
-65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93 1E 24
-58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E FE FF
-0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23 0A 4C
-FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
-0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C 00 00
-35 40 0E 44 34 40 00 44 30 4D A2 45 07 3E 4E 55
-4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42 DC 1D
-6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80 07 00
-7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49 D0 04
-82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42 E6 04
-09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00 8F 48
-02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43 2D 15
-3D 40 1E 4B 09 43 08 43 3F 82 8F 4E 06 00 0C 4E
-7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43 02 00
-E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53 04 24
-3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F 20 4B
-2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02 7A 90
-F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43 8F 49
-02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00 79 90
-0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28 09 9B
-08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 45 2A 17
-E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A 4E 93
-2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02 3F 50
-06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00 BF 4F
-00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3 00 00
-9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20 2F 53
-30 4D BA 48 07 45 58 45 43 55 54 45 0A 4E 3E 4F
-00 4A 26 45 01 2C 1A 42 C6 1D A2 53 C6 1D 8A 4E
-00 00 3E 4F 30 4D D4 4B 87 4C 49 54 45 52 41 4C
-82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D BA 40
-34 44 00 00 8A 4E 02 00 3E 4F 32 B0 00 02 32 C0
-00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49 EB 3F
-30 4D 4C 49 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F C2 1D
-3E 4F 82 43 C4 1D 30 4D 87 12 38 4C B0 45 C4 49
-52 4C 3D 40 5A 4C E2 22 5D 3E 5C 4C 0A 4E 3E 4F
-3D 40 72 4C 39 27 3D 40 4C 4C 1A E2 BE 1D B3 27
-AD 23 74 4C 3E 4F 3D 40 4C 4C BA 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 3E 4F CD 3F
-C4 4B 08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D
-3C 49 3B 49 3A 49 3D 15 B0 12 2A 44 48 4C B0 4C
-B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D
-6C 45 04 51 55 49 54 00 82 43 08 18 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44 50 49
-A0 48 EA 48 48 4C DE 44 70 45 60 49 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 3C 4D 34 44 30 FF
-F2 46 8A 45 60 49 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 3C 4D 24 47 DE 4C C0 47 05 41 42 4F 52 54
-3F 40 80 1C D1 3F 1A 4D 86 41 42 4F 52 54 22 00
-87 12 7A 49 34 44 3C 4D D6 4B 2A 44 8F 93 02 00
-03 20 2F 52 3E 4F 30 4D B0 12 FE 54 B0 12 00 48
-92 C3 DC 05 38 40 A8 2A 39 42 09 59 03 43 19 83
-FD 23 18 83 F9 23 92 B3 DC 05 F2 23 87 12 78 54
-34 44 DE 1D F2 44 C0 48 60 49 04 1B 5B 37 6D 00
-22 49 54 44 28 47 98 4D 50 49 60 49 05 6C 69 6E
-65 3A 22 49 40 45 D2 46 22 49 60 49 04 1B 5B 30
-6D 00 22 49 20 4D 00 00 83 5B 27 5D 87 12 BE 4D
-34 44 34 44 D6 4B D6 4B 2A 44 16 4A 01 27 87 12
-B0 45 C4 49 1C 4A 28 47 CC 4D 2A 44 7C 4C CE 45
-81 5C 92 42 C0 1D C4 1D 30 4D A8 4D 81 5B 82 43
-BE 1D 30 4D D0 4D 01 5D B2 43 BE 1D 30 4D BE 4F
-02 00 3E 4F 30 4D 72 47 82 49 53 00 87 12 C8 45
-F2 44 28 47 10 4E AC 4D 34 44 EE 4D D6 4B 2A 44
-BE 4D EE 4D 2A 44 F8 4D 09 49 4D 4D 45 44 49 41
-54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D 76 49
-87 52 45 43 55 52 53 45 19 42 C6 1D 99 42 BA 1D
-00 00 A2 53 C6 1D 30 4D C2 4C 88 50 4F 53 54 50
-4F 4E 45 00 87 12 B0 45 C4 49 1C 4A 54 44 28 47
-CC 4D 70 45 28 47 74 4E 34 44 34 44 D6 4B D6 4B
-34 44 D6 4B D6 4B 2A 44 DC 4D 81 3B 82 93 BE 1D
-A8 27 87 12 34 44 2A 44 D6 4B 12 4F DE 4D 2A 44
-7A 4E 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E 00 00
-1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02 B0 12
-FE 4E BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D
-82 4F BC 1D 30 4D 92 4E 01 3A 30 12 B2 4E 87 12
-A0 49 B0 45 C4 49 D8 4E 3D 41 08 4E 7A 4E 5A D3
-5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E
-3E 4F BA 40 30 40 00 00 BA 40 C4 4E 02 00 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D
-30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D
-A8 49 FE FF 89 48 00 00 30 4D 87 12 60 49 0F 73
-74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 48 4D
-BE 49 08 56 41 52 49 41 42 4C 45 00 B0 12 CE 4E
-BA 40 86 12 FC FF E4 3F 24 4C 08 43 4F 4E 53 54
-41 4E 54 00 B0 12 CE 4E BA 40 85 12 FC FF 8A 4E
-FE FF 3E 4F D5 3F 5A 4F 06 43 52 45 41 54 45 00
-B0 12 CE 4E BA 40 85 12 FC FF 8A 4A FE FF C8 3F
-92 4C 05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12
-00 00 8A 4D 02 00 3D 41 30 4D 92 4F 05 44 45 46
-45 52 30 12 20 4F 8B 3F 7C 4A 05 3E 42 4F 44 59
-2E 52 30 4D 78 4F 04 43 4F 44 45 00 B0 12 CE 4E
-2A 82 82 4A C6 1D 87 12 C0 4E A2 52 74 52 2A 44
-C6 4F 07 43 4F 44 45 4E 4E 4D 87 12 9A 4E DE 4D
-D0 4F 2A 44 00 00 07 45 4E 44 43 4F 44 45 87 12
-BC 52 12 4F 2A 44 28 4D 03 41 53 4D 92 42 DA 1D
-EC 1D B2 40 78 52 DA 1D D9 3F F6 4F 06 45 4E 44
-41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00 05 43
-4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53
-C6 1D B2 43 BE 1D 30 40 BC 52 00 00 05 4C 4F 32
-48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A 44
-02 00 A2 52 C6 1D ED 3F 18 4E 85 48 49 32 4C 4F
-87 12 F2 46 9A 50 D6 4B DE 4D A2 52 74 52 2A 44
-6A 50 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
-A2 52 C6 1D BE 40 28 47 00 00 2E 53 30 4D AC 4F
-84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40
-24 47 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D 1C 49
-84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D
-E2 4F 85 42 45 47 49 4E 30 40 F2 46 C0 50 85 55
-4E 54 49 4C 39 40 28 47 A2 52 C6 1D 1A 42 C6 1D
-8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D 08 50 85 41
-47 41 49 4E 39 40 24 47 EF 3F 42 4F 85 57 48 49
-4C 45 87 12 86 50 78 44 2A 44 30 4E 86 52 45 50
-45 41 54 00 87 12 04 51 C6 50 2A 44 A0 50 82 44
-4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D
-BE 40 3C 47 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
-00 00 30 4D E8 4B 84 4C 4F 4F 50 00 39 40 5E 47
-A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
-1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A
-00 00 F6 3F 3E 4F 30 4D 98 47 85 2B 4C 4F 4F 50
-39 40 4C 47 E5 3F 56 51 85 4C 45 41 56 45 1A 42
-C6 1D BA 40 6E 47 00 00 BA 40 24 47 02 00 B2 50
-06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C 89 4A
-00 00 30 4D 98 51 04 4D 4F 56 45 00 0A 4E 38 4F
-39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49
-00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 0C 51 0A 56
-4F 43 41 42 55 4C 41 52 59 00 87 12 80 4F 34 44
-10 00 34 44 00 00 3C 47 34 44 00 00 D6 4B 5E 47
-18 52 F2 46 34 44 C8 1D 44 44 F2 44 D6 4B FA 44
-98 4F 34 44 CA 1D FA 44 2A 44 BC 4D 05 46 4F 52
-54 48 84 12 32 52 9C 52 DC 55 DA 52 3C 52 82 50
-8A 51 06 54 CC 52 9C 54 E8 56 DE 50 4E 55 00 00
-DA 53 E6 4D BA 4F 00 00 FE 50 09 41 53 53 45 4D
-42 4C 45 52 84 12 32 52 DA 62 72 62 D6 61 68 5D
-10 5C 8C 5D 9E 60 00 00 00 64 12 64 68 5C A6 5C
-A6 62 00 00 00 00 9A 5D 66 52 6A 52 04 41 4C 53
-4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F
-4A 4E 08 50 52 45 56 49 4F 55 53 00 3A 40 0E 00
-39 40 CC 1D 38 40 CA 1D 8A 3F AC 49 04 4F 4E 4C
-59 00 82 43 CC 1D 30 4D 2E 51 0B 44 45 46 49 4E
-49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D D2 50
-07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53
-F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D
-C8 4E 86 5B 54 48 45 4E 5D 00 30 4D 22 53 86 5B
-45 4C 53 45 5D 00 87 12 34 44 00 00 36 45 B0 45
-C4 49 2A 4C 44 44 28 47 9C 53 8A 44 8A 44 60 49
-06 5B 54 48 45 4E 5D 00 F8 52 32 47 6A 53 44 49
-40 45 54 44 32 47 3E 53 2A 44 8A 44 8A 44 60 49
-06 5B 45 4C 53 45 5D 00 F8 52 32 47 8A 53 44 49
-40 45 54 44 32 47 3C 53 2A 44 60 49 04 5B 49 46
-5D 00 F8 52 32 47 3E 53 24 47 3C 53 44 49 60 49
-05 0D 0A 6B 6F 20 22 49 A0 48 38 4C 24 47 3E 53
-2E 53 84 5B 49 46 5D 00 0E 93 3E 4F BC 27 30 4D
-B2 53 89 5B 44 45 46 49 4E 45 44 5D 87 12 B0 45
-C4 49 1C 4A 6C 44 2A 44 C2 53 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 87 12 B0 45 C4 49 1C 4A 6C 44
-64 45 2A 44 F6 53 3D 41 B2 4E 0E 18 A2 4E 0C 18
-3E 4F 44 3C C6 51 06 4D 41 52 4B 45 52 00 B0 12
-CE 4E BA 40 84 12 FC FF BA 40 F4 53 FE FF 9A 42
-C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40
-18 4F 42 52 D2 52 E6 52 3A 54 3A 4E 82 4A C8 1D
-2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83
-18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23
-2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D B2 52 09 50
-57 52 5F 53 54 41 54 45 84 12 32 54 98 52 48 64
-1C 51 09 52 53 54 5F 53 54 41 54 45 92 42 0E 18
-7C 54 92 42 0C 18 7E 54 EF 3F 6E 54 08 50 57 52
-5F 48 45 52 45 00 92 42 C8 1D 7C 54 92 42 C6 1D
-7E 54 30 4D 82 54 08 52 53 54 5F 48 45 52 45 00
-92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F FE 51
-04 57 49 50 45 00 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B2 40 2A 48 28 48 B2 40 58 55 56 55 B2 40
-98 52 0E 18 B2 40 48 64 0C 18 30 12 8C 54 B2 40
-90 48 8E 48 B2 40 54 49 52 49 B2 40 A0 47 9E 47
-B2 40 CC 47 CA 47 B2 40 3C 1D 9E 48 B2 40 18 00
-0A 18 37 40 1A 44 36 40 BC 44 35 40 0E 44 34 40
-00 44 39 40 10 00 29 83 89 43 E0 1D FC 23 B2 40
-0A 00 DC 1D B2 40 20 00 B4 1D 30 41 D0 54 04 57
-41 52 4D 00 30 40 58 55 3D 40 8C 55 92 C3 30 01
-1E 42 08 18 0E 93 11 24 D2 B3 01 02 02 20 3E E3
-1E 53 F2 D0 03 00 0D 02 3E 90 0A 00 AC 27 3E 90
-16 00 A9 2F 2E 93 78 27 81 2F 30 4D 60 49 06 0D
-1B 5B 37 6D 23 00 22 49 E2 46 60 49 1F 46 61 73
-74 46 6F 72 74 68 20 56 33 30 30 20 28 43 29 4A
-2E 4D 2E 54 68 6F 6F 72 65 6E 73 20 22 49 34 44
-80 FF F2 46 28 45 D2 46 60 49 0B 62 79 74 65 73
-20 66 72 65 65 20 24 47 98 4D F0 52 04 43 4F 4C
-44 00 92 B3 CA 05 FD 23 B2 40 04 A5 20 01 B2 40
-88 5A 5C 01 92 D3 04 02 B2 40 FE FF 02 02 92 C3
-06 02 B2 43 26 02 B2 43 22 02 E2 D3 25 02 F2 43
-22 03 F2 43 26 03 F2 40 A5 00 61 01 B2 40 06 00
-62 01 82 43 66 01 39 40 40 00 B2 40 33 00 64 01
-D2 43 61 01 92 D2 9E 01 08 18 38 40 59 14 18 83
-FE 23 19 83 FA 23 B2 D2 B0 01 F2 D0 10 00 2A 03
-F2 C0 40 00 A1 04 39 40 00 FC 29 83 89 43 00 1C
-FC 23 39 40 34 00 29 83 B9 40 EE 55 CC FF FB 23
-B2 40 30 48 F0 FF B2 40 81 00 C0 05 92 42 02 18
-C6 05 92 42 04 18 C8 05 92 C3 C0 05 92 D3 DA 05
-3F 40 80 1C 31 40 E0 1C 30 12 54 55 3F 3F 38 40
-C0 1D 39 48 2A 48 09 5A 1A 52 C4 1D 09 9A 03 24
-7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A C4 1D 30 4D
-B6 54 09 32 43 4F 4E 53 54 41 4E 54 87 12 80 4F
-D6 4B D6 4B 98 4F D8 56 2F 83 9F 4E 02 00 00 00
-2E 4E 3D 41 30 4D C2 56 09 32 56 41 52 49 41 42
-4C 45 87 12 80 4F 34 44 04 00 06 47 98 4F 2A 44
-1C 15 B0 12 2A 44 C4 49 1C 4A 32 47 16 57 D8 4A
-28 47 CC 4D 4E 57 18 57 29 4E 39 90 86 12 02 20
-2E 53 15 3C 39 90 85 12 03 20 1E 4E 02 00 0F 3C
-39 90 84 12 0C 20 2E 52 B9 90 D6 56 02 00 04 24
-B9 90 FE 56 02 00 03 20 B0 12 D8 56 4E 57 1B 17
-30 41 32 B0 00 02 01 24 3E 4F 30 41 3E 40 28 00
-B0 12 00 57 B0 12 52 57 19 42 C6 1D A2 53 C6 1D
-89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 1D 92 53
-C4 1D B0 12 2A 44 C4 49 D8 4A 28 47 9A 57 90 57
-21 53 3E 90 10 00 87 2D DA 2B 9C 57 B2 41 C4 1D
-D6 3F 87 12 B0 45 9E 56 AA 57 0C 43 1B 42 C6 1D
-A2 53 C6 1D 6A 4E 3E 4F 7A 90 23 00 2F 20 92 53
-C4 1D B0 12 00 57 B0 12 52 57 0E 93 03 20 3C 40
-00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C 2E 93
-03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40 20 02
-12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93 03 20
-3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 1D A2 53
-C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00
-09 20 3C 40 10 02 92 53 C4 1D B0 12 00 57 B0 12
-52 57 EB 3F 7A 90 40 00 16 20 3C 40 20 00 92 53
-C4 1D B0 12 78 57 0C 20 3C 50 10 00 3E 40 2B 00
-B0 12 78 57 92 92 C0 1D C4 1D 02 24 92 53 C4 1D
-8E 10 0C 5E D8 3F B0 12 78 57 FA 23 3C 50 10 00
-B0 12 5C 57 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D
-87 12 B0 45 9E 56 88 58 FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C6 3F B0 12 78 57 E1 23
-3C 50 80 00 B0 12 5C 57 DC 3F 20 48 04 52 45 54
-49 00 87 12 34 44 00 13 D6 4B 2A 44 34 44 2C 00
-A2 57 80 58 C6 58 2E 4E 0E DC 09 4B A2 3F 4C 50
-03 4D 4F 56 84 12 BC 58 00 40 D0 58 05 4D 4F 56
-2E 42 84 12 BC 58 40 40 00 00 03 41 44 44 84 12
-BC 58 00 50 EA 58 05 41 44 44 2E 42 84 12 BC 58
-40 50 F6 58 04 41 44 44 43 00 84 12 BC 58 00 60
-04 59 06 41 44 44 43 2E 42 00 84 12 BC 58 40 60
-AC 58 04 53 55 42 43 00 84 12 BC 58 00 70 22 59
-06 53 55 42 43 2E 42 00 84 12 BC 58 40 70 30 59
-03 53 55 42 84 12 BC 58 00 80 40 59 05 53 55 42
-2E 42 84 12 BC 58 40 80 2E 50 03 43 4D 50 84 12
-BC 58 00 90 5A 59 05 43 4D 50 2E 42 84 12 BC 58
-40 90 1C 50 04 44 41 44 44 00 84 12 BC 58 00 A0
-74 59 06 44 41 44 44 2E 42 00 84 12 BC 58 40 A0
-66 59 03 42 49 54 84 12 BC 58 00 B0 92 59 05 42
-49 54 2E 42 84 12 BC 58 40 B0 9E 59 03 42 49 43
-84 12 BC 58 00 C0 AC 59 05 42 49 43 2E 42 84 12
-BC 58 40 C0 B8 59 03 42 49 53 84 12 BC 58 00 D0
-C6 59 05 42 49 53 2E 42 84 12 BC 58 40 D0 00 00
-03 58 4F 52 84 12 BC 58 00 E0 E0 59 05 58 4F 52
-2E 42 84 12 BC 58 40 E0 12 59 03 41 4E 44 84 12
-BC 58 00 F0 FA 59 05 41 4E 44 2E 42 84 12 BC 58
-40 F0 B0 45 A2 57 18 5A 0A 4C 3C F0 70 00 8A 10
-3A F0 0F 00 0C DA 4F 3F 4C 59 03 52 52 43 84 12
-12 5A 00 10 2A 5A 05 52 52 43 2E 42 84 12 12 5A
-40 10 36 5A 04 53 57 50 42 00 84 12 12 5A 80 10
-44 5A 03 52 52 41 84 12 12 5A 00 11 52 5A 05 52
-52 41 2E 42 84 12 12 5A 40 11 5E 5A 03 53 58 54
-84 12 12 5A 80 11 00 00 04 50 55 53 48 00 84 12
-12 5A 00 12 78 5A 06 50 55 53 48 2E 42 00 84 12
-12 5A 40 12 D2 59 04 43 41 4C 4C 00 84 12 12 5A
-80 12 1A 53 0E 4A 87 12 E2 46 60 49 0D 6F 75 74
-20 6F 66 20 62 6F 75 6E 64 73 48 4D B0 45 9E 56
-C2 5A 92 53 C4 1D 3E 40 2C 00 B0 12 2A 44 C4 49
-D8 4A 28 47 CC 4D 76 58 DA 5A 0A 4E 3E 4F 1A 83
-E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
-08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F
-8A 10 5A 06 8F 3F 6C 5A 06 52 52 43 4D 2E 41 00
-84 12 BC 5A 40 00 08 5B 04 52 52 43 4D 00 84 12
-BC 5A 50 00 18 5B 06 52 52 41 4D 2E 41 00 84 12
-BC 5A 40 01 26 5B 04 52 52 41 4D 00 84 12 BC 5A
-50 01 36 5B 06 52 4C 41 4D 2E 41 00 84 12 BC 5A
-40 02 44 5B 04 52 4C 41 4D 00 84 12 BC 5A 50 02
-54 5B 06 52 52 55 4D 2E 41 00 84 12 BC 5A 40 03
-62 5B 04 52 52 55 4D 00 84 12 BC 5A 50 03 86 5A
-07 50 55 53 48 4D 2E 41 84 12 BC 5A 00 14 80 5B
-05 50 55 53 48 4D 84 12 BC 5A 00 15 90 5B 06 50
-4F 50 4D 2E 41 00 84 12 BC 5A 00 16 9E 5B 04 50
-4F 50 4D 00 84 12 BC 5A 00 17 85 12 00 3C 72 5B
-03 53 3E 3D 85 12 00 38 C0 5B 02 53 3C 00 85 12
-00 34 AE 5B 03 30 3E 3D 85 12 00 30 D4 5B 02 30
-3C 00 85 12 00 30 00 00 02 55 3C 00 85 12 00 2C
-E8 5B 03 55 3E 3D 85 12 00 28 DE 5B 03 30 3C 3E
-85 12 00 24 FC 5B 02 30 3D 00 85 12 00 20 00 00
-02 49 46 00 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D
-0E 4A 30 4D F2 5B 04 54 48 45 4E 00 1A 42 C6 1D
-08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
-31 2F 88 DA 00 00 30 4D 82 59 04 45 4C 53 45 00
-1A 42 C6 1D BA 40 00 3C 00 00 A2 53 C6 1D 2F 83
-8F 4A 00 00 E3 3F 26 5C 05 55 4E 54 49 4C 3A 4F
-08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11 3A 90
-00 FE 10 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
-C6 1D 30 4D 06 5A 05 41 47 41 49 4E 87 12 BA 5B
-6E 5C 2A 44 00 00 05 57 48 49 4C 45 87 12 14 5C
-78 44 2A 44 CA 5B 06 52 45 50 45 41 54 00 87 12
-BA 5B 6E 5C 2C 5C 2A 44 CA 5C 3D 41 2E 4E 08 4E
-3E 4F 2A 48 0A 93 88 43 00 00 CA 23 98 42 C6 1D
-00 00 30 4D 96 5A 03 42 57 31 84 12 C8 5C E0 1D
-E6 5C 03 42 57 32 84 12 C8 5C E2 1D F2 5C 03 42
-57 33 84 12 C8 5C E4 1D 0A 5D 3D 41 1A 42 C6 1D
-2E 4E 28 4E 08 93 8E 43 00 00 8B 23 BA 4F 00 00
-A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
-57 31 84 12 08 5D E6 1D 2E 5D 03 46 57 32 84 12
-08 5D E8 1D 3A 5D 03 46 57 33 84 12 08 5D EA 1D
-3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10 02 24
-3E E0 00 08 30 4D 46 5D 04 47 4F 54 4F 00 87 12
-BA 5B BE 4D CC 4B 2A 44 00 00 05 3F 47 4F 54 4F
-87 12 50 5D BE 4D CC 4B 2A 44 00 00 03 4A 4D 50
-87 12 BE 4D 9C 5C 2A 44 7A 5D 04 3F 4A 4D 50 00
-87 12 50 5D BE 4D 78 44 6E 5C 2A 44 87 12 B0 45
-9E 56 B4 5D 69 4E 3E 4F 3C 4F 2C 4C 1B 42 C6 1D
-A2 53 C6 1D 79 90 52 00 0A 20 B0 12 78 57 5E 0E
-5E 0E 0E DC 8B 4E 00 00 0E 4B 3D 41 30 4D 79 90
-23 00 0D 20 3C C0 40 00 92 53 C4 1D A2 53 C6 1D
-B0 12 00 57 BB 4F 02 00 3E F0 0F 00 E8 3F 79 90
-26 00 03 20 3C E0 E0 00 EF 3F 3C C0 F0 00 79 90
-40 00 12 20 92 53 C4 1D B0 12 78 57 D8 23 3C D0
-10 00 3E 40 2B 00 B0 12 78 57 92 92 C0 1D C4 1D
-CE 27 92 53 C4 1D CB 3F 3C D0 30 00 A2 53 C6 1D
-3E 40 28 00 B0 12 00 57 BB 4F 02 00 3E 40 29 00
-EA 3F 87 12 B0 45 9E 56 5A 5E 3B 4F 2C 4B 69 4E
-7E 40 20 00 79 90 52 00 03 20 B0 12 78 57 B1 3F
-3C C0 F0 00 A2 53 C6 1D 79 90 26 00 09 20 3C D0
-60 00 92 53 C4 1D B0 12 00 57 BB 4F 02 00 A1 3F
-3C D0 70 00 3E 40 28 00 B0 12 00 57 BB 4F 02 00
-3E 40 29 00 E2 3F 34 44 2C 00 AC 5D 52 5E 62 44
-2A 44 DC 58 04 4D 4F 56 41 00 84 12 A6 5E C0 00
-FE 5C 04 43 4D 50 41 00 84 12 A6 5E D0 00 96 5C
-04 41 44 44 41 00 84 12 A6 5E E0 00 B6 5C 04 53
-55 42 41 00 84 12 A6 5E F0 00 C2 5E 05 43 41 4C
-4C 41 87 12 B0 45 9E 56 FA 5E 1B 42 C6 1D A2 53
-C6 1D 6E 4E 3C 40 34 01 7E 90 52 00 0B 20 7E 40
-20 00 B0 12 78 57 5C 0E 0C DE 8B 4C 00 00 3E 4F
-3D 41 30 4D 2C 53 7E 90 40 00 0B 20 92 53 C4 1D
-7E 40 20 00 B0 12 78 57 EE 23 1C 53 3E 40 2B 00
-E8 3F A2 53 C6 1D 7E 90 23 00 09 20 3C 40 3B 01
-92 53 C4 1D B0 12 00 57 BB 4F 02 00 DC 3F 7E 90
-26 00 02 20 2C 53 F4 3F 7E 40 28 00 1C 83 B0 12
-00 57 BB 4F 02 00 3E 40 29 00 CB 3F 87 12 B0 45
-9E 56 84 5F 69 4E 3E 4F 3C 40 00 18 79 90 52 00
-05 20 B0 12 78 57 0E 4C 3D 41 30 4D 82 43 EE 1D
-79 90 23 00 0B 20 92 53 C4 1D B0 12 00 57 2F 53
-3E F0 0F 00 5E 0A 5E 0E 0C DE ED 3F 79 90 26 00
-F2 27 79 90 40 00 12 20 92 53 C4 1D B0 12 78 57
-E2 23 3E 40 2B 00 92 53 C4 1D B0 12 78 57 92 92
-C0 1D C4 1D D8 27 92 53 C4 1D D5 3F 3E 40 28 00
-B0 12 00 57 8F 4E 00 00 3E 40 29 00 B0 12 78 57
-3E 4F 3E F0 0F 00 0C DE EA 3F 87 12 B0 45 9E 56
-12 60 3C 4F 69 4E 3E 40 20 00 79 90 52 00 BB 27
-82 43 EE 1D 79 90 26 00 08 20 92 53 C4 1D B0 12
-00 57 2F 53 3E F0 0F 00 BF 3F 3E 40 28 00 B0 12
-00 57 F7 3F 1B 42 C6 1D A2 53 C6 1D 0C 4E 3E 4F
-1C D2 EE 1D 82 43 EE 1D 3C DE 8B 4C 00 00 B2 41
-C4 1D 30 4D 34 44 C4 1D F2 44 B0 44 34 44 2C 00
-7C 5F 0A 60 44 60 24 47 BC 58 B4 5E 04 4D 4F 56
-58 00 84 12 64 60 40 00 00 40 7C 60 06 4D 4F 56
-58 2E 41 00 84 12 64 60 00 00 40 40 8C 60 06 4D
-4F 56 58 2E 42 00 84 12 64 60 40 00 40 40 D0 5E
-04 41 44 44 58 00 84 12 64 60 40 00 00 50 B0 60
-06 41 44 44 58 2E 41 00 84 12 64 60 00 00 40 50
-C0 60 06 41 44 44 58 2E 42 00 84 12 64 60 40 00
-40 50 D2 60 05 41 44 44 43 58 84 12 64 60 40 00
-00 60 E4 60 07 41 44 44 43 58 2E 41 84 12 64 60
-00 00 40 60 F4 60 07 41 44 44 43 58 2E 42 84 12
-64 60 40 00 40 60 DE 5E 05 53 55 42 43 58 84 12
-64 60 40 00 00 70 18 61 07 53 55 42 43 58 2E 41
-84 12 64 60 00 00 40 70 28 61 07 53 55 42 43 58
-2E 42 84 12 64 60 40 00 40 70 3A 61 04 53 55 42
-58 00 84 12 64 60 40 00 00 80 4C 61 06 53 55 42
-58 2E 41 00 84 12 64 60 00 00 40 80 5C 61 06 53
-55 42 58 2E 42 00 84 12 64 60 40 00 40 80 EC 5E
-04 43 4D 50 58 00 84 12 64 60 40 00 00 90 80 61
-06 43 4D 50 58 2E 41 00 84 12 64 60 00 00 40 90
-90 61 06 43 4D 50 58 2E 42 00 84 12 64 60 40 00
-40 90 4A 5C 05 44 41 44 44 58 84 12 64 60 40 00
-00 A0 B4 61 07 44 41 44 44 58 2E 41 84 12 64 60
-00 00 40 A0 C4 61 07 44 41 44 44 58 2E 42 84 12
-64 60 40 00 40 A0 A2 61 04 42 49 54 58 00 84 12
-64 60 40 00 00 B0 E8 61 06 42 49 54 58 2E 41 00
-84 12 64 60 00 00 40 B0 F8 61 06 42 49 54 58 2E
-42 00 84 12 64 60 40 00 40 B0 0A 62 04 42 49 43
-58 00 84 12 64 60 40 00 00 C0 1C 62 06 42 49 43
-58 2E 41 00 84 12 64 60 00 00 40 C0 2C 62 06 42
-49 43 58 2E 42 00 84 12 64 60 40 00 40 C0 3E 62
-04 42 49 53 58 00 84 12 64 60 40 00 00 D0 50 62
-06 42 49 53 58 2E 41 00 84 12 64 60 00 00 40 D0
-60 62 06 42 49 53 58 2E 42 00 84 12 64 60 40 00
-40 D0 EC 59 04 58 4F 52 58 00 84 12 64 60 40 00
-00 E0 84 62 06 58 4F 52 58 2E 41 00 84 12 64 60
-00 00 40 E0 94 62 06 58 4F 52 58 2E 42 00 84 12
-64 60 40 00 40 E0 06 61 04 41 4E 44 58 00 84 12
-64 60 40 00 00 F0 B8 62 06 41 4E 44 58 2E 41 00
-84 12 64 60 00 00 40 F0 C8 62 06 41 4E 44 58 2E
-42 00 84 12 64 60 40 00 40 F0 34 44 C4 1D F2 44
-B0 44 B0 45 7C 5F 44 60 24 47 12 5A 6E 61 04 52
-52 43 58 00 84 12 EA 62 40 00 00 10 FE 62 06 52
-52 43 58 2E 41 00 84 12 EA 62 00 00 40 10 0E 63
-06 52 52 43 58 2E 42 00 84 12 EA 62 40 00 40 10
-20 63 04 52 52 55 58 00 84 12 EA 62 40 01 00 10
-32 63 06 52 52 55 58 2E 41 00 84 12 EA 62 00 01
-40 10 42 63 06 52 52 55 58 2E 42 00 84 12 EA 62
-40 01 40 10 54 63 05 53 57 50 42 58 84 12 EA 62
-40 00 80 10 66 63 07 53 57 50 42 58 2E 41 84 12
-EA 62 00 00 80 10 76 63 04 52 52 41 58 00 84 12
-EA 62 40 00 00 11 88 63 06 52 52 41 58 2E 41 00
-84 12 EA 62 00 00 40 11 98 63 06 52 52 41 58 2E
-42 00 84 12 EA 62 40 00 40 11 AA 63 04 53 58 54
-58 00 84 12 EA 62 40 00 80 11 BC 63 06 53 58 54
-58 2E 41 00 84 12 EA 62 00 00 80 11 06 5C 05 50
-55 53 48 58 84 12 EA 62 40 00 00 12 DE 63 07 50
-55 53 48 58 2E 41 84 12 EA 62 00 00 40 12 EE 63
-07 50 55 53 48 58 2E 42 84 12 EA 62 40 00 40 12
-CC 63 03 52 50 54 87 12 B0 45 9E 56 1E 64 29 4E
-7E 40 20 00 79 90 52 00 06 20 B0 12 78 57 03 24
-3E D0 80 00 04 3C B0 12 00 57 3E F0 0F 00 82 4E
-EE 1D 3E 4F 3D 41 30 4D
-@FFFE
-EE 55
-q
index cf474bb..3229eac 100644 (file)
 @1800
-10 00 04 00 51 55 40 1F 05 00 18 00 42 64 98 52
-2C 01 7F B0 00 48 12 48
+10 00 04 00 51 55 40 1F 05 00 18 00 9E 5B D0 50
+2D 01 6B B4 B6 46 C8 46
 @4400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 44
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 44 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 44 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 44 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 44 02 3E 52 00
-0E 12 3E 4F 30 4D 96 44 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 44 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 44 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 44 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 45 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 44 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 45 02 31 2D 00
-1E 83 30 4D D8 44 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 45
-02 30 3D 00 1E 83 0E 7E 30 4D 60 45 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 45 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 44 01 3E 3E 8F F4 3B EB 37 0E 45 02 42 4C 00
-85 12 20 00 AC 45 04 42 41 53 45 00 85 12 DC 1D
-C8 44 05 53 54 41 54 45 85 12 BE 1D 96 45 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 45 06 55 4D 2F
-4D 4F 44 00 30 12 62 44 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 44 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 45
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 45 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 46
-02 23 53 00 87 12 32 46 6A 46 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 46 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 45 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 45
-02 44 2E 00 87 12 D2 45 44 44 B0 44 4C 45 64 46
-BC 44 A2 46 7E 46 22 49 EA 48 2A 44 DC 45 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 44
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 46 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 44
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A 46
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 46 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 46 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 45 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 47 03 4B 45 59 30 40 A0 47
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 00 48 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 12 48 30 4D 00 47
-06 41 43 43 45 50 54 00 30 40 CC 47 3C 40 6E 48
-3B 40 38 48 2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00
-3C 40 20 00 3D 40 62 48 92 B3 DC 05 05 24 18 42
-CC 05 38 90 0A 00 04 20 21 53 39 40 26 48 4D 15
-A2 B3 DC 05 FD 27 B2 40 11 00 CE 05 E2 C3 23 02
-30 41 B2 40 13 00 CE 05 E2 D3 23 02 30 41 00 00
-05 53 4C 45 45 50 30 40 2A 48 12 D2 0A 18 FB 3F
-21 52 3A 17 58 42 CC 05 48 9C 08 2C 48 9B E9 27
-78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24
-CE 48 00 00 1E 53 A2 B3 DC 05 FD 27 82 48 CE 05
-30 4D 64 48 2D 83 92 B3 DC 05 E4 23 FC 27 82 93
-DE 1D 02 24 92 53 DE 1D 3E 8F 3D 41 B2 40 18 00
-0A 18 30 4D B0 46 04 45 4D 49 54 00 30 40 90 48
-08 4E 3E 4F E0 3F 10 47 03 43 49 42 85 12 3C 1D
-3F 80 06 00 8F 4E 04 00 3E 40 54 00 9F 42 9E 48
-00 00 AF 4F 02 00 88 3F 86 48 04 45 43 48 4F 00
-B2 40 82 48 5C 48 82 43 DE 1D 30 4D E0 46 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 5C 48 92 43 DE 1D
-30 4D 9C 46 05 53 50 41 43 45 2F 83 8F 4E 00 00
-3E 40 20 00 CB 3F E4 48 06 53 50 41 43 45 53 00
-0E 93 09 24 0D 12 3D 40 0C 49 EF 3F 0E 49 2D 83
-1E 83 EB 23 3D 41 3E 4F 30 4D 66 47 04 54 59 50
-45 00 0E 93 0F 24 1E 15 3D 40 38 49 28 4F 7E 48
-8F 48 00 00 2F 83 AA 3F 3A 49 2D 83 91 83 02 00
-F5 23 1D 17 2F 53 3E 4F 30 4D 98 48 02 43 52 00
-30 40 54 49 87 12 60 49 02 0D 0A 00 22 49 2A 44
-2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
-0D 63 30 4D F8 48 82 53 22 00 82 43 B4 1D 87 12
-34 44 60 49 D6 4B 34 44 22 00 C4 49 8E 49 3D 41
-B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D 3E 4F
-92 B3 C6 1D A2 63 C6 1D 30 4D CE 48 82 2E 22 00
-87 12 7A 49 34 44 22 49 D6 4B 2A 44 00 00 04 57
-4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A 3A 5C
-28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40 60 00
-C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24 18 53
-4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D F0 3F
-1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E CE 48
-00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83 0C 4E
-65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93 1E 24
-58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E FE FF
-0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23 0A 4C
-FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
-0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C 00 00
-35 40 0E 44 34 40 00 44 30 4D A2 45 07 3E 4E 55
-4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42 DC 1D
-6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80 07 00
-7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49 D0 04
-82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42 E6 04
-09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00 8F 48
-02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43 2D 15
-3D 40 1E 4B 09 43 08 43 3F 82 8F 4E 06 00 0C 4E
-7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43 02 00
-E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53 04 24
-3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F 20 4B
-2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02 7A 90
-F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43 8F 49
-02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00 79 90
-0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28 09 9B
-08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 45 2A 17
-E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A 4E 93
-2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02 3F 50
-06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00 BF 4F
-00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3 00 00
-9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20 2F 53
-30 4D BA 48 07 45 58 45 43 55 54 45 0A 4E 3E 4F
-00 4A 26 45 01 2C 1A 42 C6 1D A2 53 C6 1D 8A 4E
-00 00 3E 4F 30 4D D4 4B 87 4C 49 54 45 52 41 4C
-82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D BA 40
-34 44 00 00 8A 4E 02 00 3E 4F 32 B0 00 02 32 C0
-00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49 EB 3F
-30 4D 4C 49 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F C2 1D
-3E 4F 82 43 C4 1D 30 4D 87 12 38 4C B0 45 C4 49
-52 4C 3D 40 5A 4C E2 22 5D 3E 5C 4C 0A 4E 3E 4F
-3D 40 72 4C 39 27 3D 40 4C 4C 1A E2 BE 1D B3 27
-AD 23 74 4C 3E 4F 3D 40 4C 4C BA 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 3E 4F CD 3F
-C4 4B 08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D
-3C 49 3B 49 3A 49 3D 15 B0 12 2A 44 48 4C B0 4C
-B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D
-6C 45 04 51 55 49 54 00 82 43 08 18 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44 50 49
-A0 48 EA 48 48 4C DE 44 70 45 60 49 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 3C 4D 34 44 30 FF
-F2 46 8A 45 60 49 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 3C 4D 24 47 DE 4C C0 47 05 41 42 4F 52 54
-3F 40 80 1C D1 3F 1A 4D 86 41 42 4F 52 54 22 00
-87 12 7A 49 34 44 3C 4D D6 4B 2A 44 8F 93 02 00
-03 20 2F 52 3E 4F 30 4D B0 12 FE 54 B0 12 00 48
-92 C3 DC 05 38 40 50 55 39 42 09 59 03 43 19 83
-FD 23 18 83 F9 23 92 B3 DC 05 F2 23 87 12 78 54
-34 44 DE 1D F2 44 C0 48 60 49 04 1B 5B 37 6D 00
-22 49 54 44 28 47 98 4D 50 49 60 49 05 6C 69 6E
-65 3A 22 49 40 45 D2 46 22 49 60 49 04 1B 5B 30
-6D 00 22 49 20 4D 00 00 83 5B 27 5D 87 12 BE 4D
-34 44 34 44 D6 4B D6 4B 2A 44 16 4A 01 27 87 12
-B0 45 C4 49 1C 4A 28 47 CC 4D 2A 44 7C 4C CE 45
-81 5C 92 42 C0 1D C4 1D 30 4D A8 4D 81 5B 82 43
-BE 1D 30 4D D0 4D 01 5D B2 43 BE 1D 30 4D BE 4F
-02 00 3E 4F 30 4D 72 47 82 49 53 00 87 12 C8 45
-F2 44 28 47 10 4E AC 4D 34 44 EE 4D D6 4B 2A 44
-BE 4D EE 4D 2A 44 F8 4D 09 49 4D 4D 45 44 49 41
-54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D 76 49
-87 52 45 43 55 52 53 45 19 42 C6 1D 99 42 BA 1D
-00 00 A2 53 C6 1D 30 4D C2 4C 88 50 4F 53 54 50
-4F 4E 45 00 87 12 B0 45 C4 49 1C 4A 54 44 28 47
-CC 4D 70 45 28 47 74 4E 34 44 34 44 D6 4B D6 4B
-34 44 D6 4B D6 4B 2A 44 DC 4D 81 3B 82 93 BE 1D
-A8 27 87 12 34 44 2A 44 D6 4B 12 4F DE 4D 2A 44
-7A 4E 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E 00 00
-1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02 B0 12
-FE 4E BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D
-82 4F BC 1D 30 4D 92 4E 01 3A 30 12 B2 4E 87 12
-A0 49 B0 45 C4 49 D8 4E 3D 41 08 4E 7A 4E 5A D3
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 44
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 44
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 44
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 44 02 3E 52 00 0E 12 3E 4F 30 4D 70 44 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 44 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 44 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 44
+01 21 BE 4F 00 00 3E 4F 30 4D CC 44 02 30 3D 00
+1E 83 0E 7E 30 4D FC 44 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 45 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 45 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 45 02 23 53 00 87 12 88 45 C0 45
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 45
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 44 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 45 34 44 86 44 D4 44 BA 45
+92 44 F8 45 D4 45 D6 47 42 4B 82 47 2A 44 22 45
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 45 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 46 18 42 CC 05 2F 83 8F 4E
+00 00 B0 12 B6 46 92 B3 DC 05 FD 27 1E 42 CC 05
+B0 12 C8 46 30 4D A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C3 23 02 30 41 B2 40 13 00 CE 05 E2 D3
+23 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 46
+B0 12 B6 46 12 D2 0A 18 F9 3F F0 44 06 41 43 43
+45 50 54 00 3C 40 64 47 3B 40 2E 47 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 47
+92 B3 DC 05 05 24 18 42 CC 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 CC 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 DC 05
+FD 27 82 48 CE 05 30 4D 5A 47 2D 83 92 B3 DC 05
+E4 23 FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 44 04 45 4D 49
+54 00 30 40 86 47 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
+02 00 A8 3F 7C 47 04 45 43 48 4F 00 B2 40 82 48
+52 47 82 43 DE 1D 30 4D 32 46 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 47 92 43 DE 1D 30 4D 20 46
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 47
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 47 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 45
+02 43 52 00 30 40 08 48 87 12 1E 48 02 0D 0A 00
+D6 47 2A 44 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 45 82 53 22 00 82 43 B4 1D 87 12 14 48
+1E 48 B0 4A 14 48 22 00 80 48 4C 48 B2 40 20 00
+B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41 3E 4F
+30 4D BA 47 82 2E 22 00 87 12 38 48 14 48 D6 47
+B0 4A 2A 44 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52 C4 1D
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D 3B 40
+60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
+18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D
+F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E
+CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
+0C 4E 65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
+FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
+00 00 35 40 0E 44 34 40 00 44 30 4D 82 44 07 3E
+4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
+DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
+07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
+D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 1D 0C 43 2D 15 3D 40 F4 49 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 49 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 45 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 46 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 44 01 2C
+1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D
+EC 46 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D
+A6 47 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 4A 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
+1A 42 C6 1D A2 52 C6 1D BA 40 14 48 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 48 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
+30 4D 85 12 20 00 87 12 32 4B 42 4B 80 48 50 4B
+3D 40 58 4B CC 22 82 3E 5A 4B 0A 4E 3E 4F 3D 40
+70 4B 23 27 3D 40 4A 4B 1A E2 BE 1D A1 27 B5 23
+72 4B 3E 4F 3D 40 4A 4B B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 4E CB 3F D2 4A
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 44 46 4B AE 4B B2 41
+C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D 85 12
+BE 1D 08 45 04 51 55 49 54 00 82 43 08 18 31 40
+E0 1C B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44
+04 48 8C 47 42 4B 82 47 46 4B A4 44 0C 45 1E 48
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 4C
+14 48 30 FF A0 4A 26 45 1E 48 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 4C 3C 46 E0 4B C2 4A 05 41
+42 4F 52 54 3F 40 80 1C D0 3F 1E 4C 86 41 42 4F
+52 54 22 00 87 12 38 48 14 48 40 4C B0 4A 2A 44
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 C8 51
+B0 12 B6 46 92 C3 DC 05 38 40 50 55 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 DC 05 F3 23 87 12
+42 51 14 48 DE 1D EA 44 AC 47 1E 48 04 1B 5B 37
+6D 00 D6 47 58 44 40 46 9A 4C 04 48 1E 48 05 6C
+69 6E 65 3A D6 47 D0 44 24 46 D6 47 1E 48 04 1B
+5B 30 6D 00 D6 47 24 4C 00 00 83 5B 27 5D 87 12
+C0 4C 14 48 14 48 B0 4A B0 4A 2A 44 E8 48 01 27
+87 12 42 4B 80 48 EE 48 40 46 CE 4C 2A 44 7A 4B
+32 45 81 5C 92 42 C0 1D C4 1D 30 4D AA 4C 81 5B
+82 43 BE 1D 30 4D D2 4C 01 5D B2 43 BE 1D 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 4A 82 49 53 00 87 12
+BE 4B EA 44 40 46 12 4D AE 4C 14 48 F0 4C B0 4A
+2A 44 C0 4C F0 4C 2A 44 FA 4C 09 49 4D 4D 45 44
+49 41 54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D
+C4 4B 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 4B
+80 48 EE 48 58 44 40 46 CE 4C 0C 45 40 46 5C 4D
+14 48 14 48 B0 4A B0 4A 14 48 B0 4A B0 4A 2A 44
+DE 4C 81 3B 82 93 BE 1D B5 27 87 12 14 48 2A 44
+B0 4A FA 4D E0 4C 2A 44 62 4D 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 4D 2F 83 8F 4E 00 00 1E 42 C6 1D
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 30 4D
+7A 4D 01 3A 30 12 A0 4D 92 B3 C6 1D A2 63 C6 1D
+87 12 42 4B 80 48 C8 4D 3D 41 08 4E 7A 4E 5A D3
 5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E
-3E 4F BA 40 30 40 00 00 BA 40 C4 4E 02 00 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D
-30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D
-A8 49 FE FF 89 48 00 00 30 4D 87 12 60 49 0F 73
-74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 48 4D
-BE 49 08 56 41 52 49 41 42 4C 45 00 B0 12 CE 4E
-BA 40 86 12 FC FF E4 3F 24 4C 08 43 4F 4E 53 54
-41 4E 54 00 B0 12 CE 4E BA 40 85 12 FC FF 8A 4E
-FE FF 3E 4F D5 3F 5A 4F 06 43 52 45 41 54 45 00
-B0 12 CE 4E BA 40 85 12 FC FF 8A 4A FE FF C8 3F
-92 4C 05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12
-00 00 8A 4D 02 00 3D 41 30 4D 92 4F 05 44 45 46
-45 52 30 12 20 4F 8B 3F 7C 4A 05 3E 42 4F 44 59
-2E 52 30 4D 78 4F 04 43 4F 44 45 00 B0 12 CE 4E
-2A 82 82 4A C6 1D 87 12 C0 4E A2 52 74 52 2A 44
-C6 4F 07 43 4F 44 45 4E 4E 4D 87 12 9A 4E DE 4D
-D0 4F 2A 44 00 00 07 45 4E 44 43 4F 44 45 87 12
-BC 52 12 4F 2A 44 28 4D 03 41 53 4D 92 42 DA 1D
-EC 1D B2 40 78 52 DA 1D D9 3F F6 4F 06 45 4E 44
-41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00 05 43
+3E 4F 82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F
+BC 1D 2A 52 82 4A C6 1D 30 41 82 9F BC 1D 09 20
+18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 48 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 4C 90 4B 05 44 45 46 45 52
+B0 12 B8 4D BA 40 30 40 FC FF BA 40 AE 4D FE FF
+E3 3F 1E 4B 06 43 52 45 41 54 45 00 B0 12 B8 4D
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 4E 05 44
+4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 49 05 3E 42 4F 44 59 2E 52
+30 4D 44 4E 04 43 4F 44 45 00 B0 12 B8 4D A2 82
+C6 1D 87 12 D2 50 AC 50 2A 44 84 4E 07 43 4F 44
+45 4E 4E 4D B0 12 86 4D F2 3F 00 00 07 45 4E 44
+43 4F 44 45 87 12 E0 50 FA 4D 2A 44 2C 4C 03 41
+53 4D B2 40 B0 50 DA 1D E0 3F AC 4E 06 45 4E 44
+41 53 4D 00 87 12 B4 4E F4 50 2A 44 00 00 05 43
 4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53
-C6 1D B2 43 BE 1D 30 40 BC 52 00 00 05 4C 4F 32
+C6 1D B2 43 BE 1D 30 40 E0 50 00 00 05 4C 4F 32
 48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A 44
-02 00 A2 52 C6 1D ED 3F 18 4E 85 48 49 32 4C 4F
-87 12 F2 46 9A 50 D6 4B DE 4D A2 52 74 52 2A 44
-6A 50 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
-A2 52 C6 1D BE 40 28 47 00 00 2E 53 30 4D AC 4F
+02 00 A2 52 C6 1D ED 3F 1A 4D 85 48 49 32 4C 4F
+87 12 A0 4A 4A 4F B0 4A E0 4C D2 50 AC 50 2A 44
+1A 4F 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
+A2 52 C6 1D BE 40 40 46 00 00 2E 53 30 4D 5E 4E
 84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40
-24 47 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D 1C 49
+3C 46 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D D0 47
 84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D
-E2 4F 85 42 45 47 49 4E 30 40 F2 46 C0 50 85 55
-4E 54 49 4C 39 40 28 47 A2 52 C6 1D 1A 42 C6 1D
-8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D 08 50 85 41
-47 41 49 4E 39 40 24 47 EF 3F 42 4F 85 57 48 49
-4C 45 87 12 86 50 78 44 2A 44 30 4E 86 52 45 50
-45 41 54 00 87 12 04 51 C6 50 2A 44 A0 50 82 44
+9C 4E 85 42 45 47 49 4E 30 40 A0 4A 70 4F 85 55
+4E 54 49 4C 39 40 40 46 A2 52 C6 1D 1A 42 C6 1D
+8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D BE 4E 85 41
+47 41 49 4E 39 40 3C 46 EF 3F 7A 48 85 57 48 49
+4C 45 87 12 36 4F 76 44 2A 44 34 48 86 52 45 50
+45 41 54 00 87 12 B4 4F 76 4F 2A 44 50 4F 82 44
 4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D
-BE 40 3C 47 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
-00 00 30 4D E8 4B 84 4C 4F 4F 50 00 39 40 5E 47
+BE 40 54 46 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
+00 00 30 4D E2 4A 84 4C 4F 4F 50 00 39 40 76 46
 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
 1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A
-00 00 F6 3F 3E 4F 30 4D 98 47 85 2B 4C 4F 4F 50
-39 40 4C 47 E5 3F 56 51 85 4C 45 41 56 45 1A 42
-C6 1D BA 40 6E 47 00 00 BA 40 24 47 02 00 B2 50
-06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C 89 4A
-00 00 30 4D 98 51 04 4D 4F 56 45 00 0A 4E 38 4F
-39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49
-00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 0C 51 0A 56
-4F 43 41 42 55 4C 41 52 59 00 87 12 80 4F 34 44
-10 00 34 44 00 00 3C 47 34 44 00 00 D6 4B 5E 47
-18 52 F2 46 34 44 C8 1D 44 44 F2 44 D6 4B FA 44
-98 4F 34 44 CA 1D FA 44 2A 44 BC 4D 05 46 4F 52
-54 48 84 12 32 52 9C 52 DC 55 DA 52 3C 52 82 50
-8A 51 06 54 CC 52 9C 54 E2 56 DE 50 4E 55 00 00
-DA 53 E6 4D BA 4F 00 00 FE 50 09 41 53 53 45 4D
-42 4C 45 52 84 12 32 52 D4 62 6C 62 D0 61 62 5D
-0A 5C 86 5D 98 60 00 00 FA 63 0C 64 62 5C A0 5C
-A0 62 00 00 00 00 94 5D 66 52 6A 52 04 41 4C 53
-4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F
-4A 4E 08 50 52 45 56 49 4F 55 53 00 3A 40 0E 00
-39 40 CC 1D 38 40 CA 1D 8A 3F AC 49 04 4F 4E 4C
-59 00 82 43 CC 1D 30 4D 2E 51 0B 44 45 46 49 4E
-49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D D2 50
-07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53
-F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D
-C8 4E 86 5B 54 48 45 4E 5D 00 30 4D 22 53 86 5B
-45 4C 53 45 5D 00 87 12 34 44 00 00 36 45 B0 45
-C4 49 2A 4C 44 44 28 47 9C 53 8A 44 8A 44 60 49
-06 5B 54 48 45 4E 5D 00 F8 52 32 47 6A 53 44 49
-40 45 54 44 32 47 3E 53 2A 44 8A 44 8A 44 60 49
-06 5B 45 4C 53 45 5D 00 F8 52 32 47 8A 53 44 49
-40 45 54 44 32 47 3C 53 2A 44 60 49 04 5B 49 46
-5D 00 F8 52 32 47 3E 53 24 47 3C 53 44 49 60 49
-05 0D 0A 6B 6F 20 22 49 A0 48 38 4C 24 47 3E 53
-2E 53 84 5B 49 46 5D 00 0E 93 3E 4F BC 27 30 4D
-B2 53 89 5B 44 45 46 49 4E 45 44 5D 87 12 B0 45
-C4 49 1C 4A 6C 44 2A 44 C2 53 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 87 12 B0 45 C4 49 1C 4A 6C 44
-64 45 2A 44 F6 53 3D 41 B2 4E 0E 18 A2 4E 0C 18
-3E 4F 44 3C C6 51 06 4D 41 52 4B 45 52 00 B0 12
-CE 4E BA 40 84 12 FC FF BA 40 F4 53 FE FF 9A 42
-C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40
-18 4F 42 52 D2 52 E6 52 3A 54 3A 4E 82 4A C8 1D
-2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83
-18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23
-2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D B2 52 09 50
-57 52 5F 53 54 41 54 45 84 12 32 54 98 52 42 64
-1C 51 09 52 53 54 5F 53 54 41 54 45 92 42 0E 18
-7C 54 92 42 0C 18 7E 54 EF 3F 6E 54 08 50 57 52
-5F 48 45 52 45 00 92 42 C8 1D 7C 54 92 42 C6 1D
-7E 54 30 4D 82 54 08 52 53 54 5F 48 45 52 45 00
-92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F FE 51
-04 57 49 50 45 00 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B2 40 2A 48 28 48 B2 40 58 55 56 55 B2 40
-98 52 0E 18 B2 40 42 64 0C 18 30 12 8C 54 B2 40
-90 48 8E 48 B2 40 54 49 52 49 B2 40 A0 47 9E 47
-B2 40 CC 47 CA 47 B2 40 3C 1D 9E 48 B2 40 18 00
-0A 18 37 40 1A 44 36 40 BC 44 35 40 0E 44 34 40
-00 44 39 40 10 00 29 83 89 43 E0 1D FC 23 B2 40
-0A 00 DC 1D B2 40 20 00 B4 1D 30 41 D0 54 04 57
-41 52 4D 00 30 40 58 55 3D 40 8C 55 92 C3 30 01
-1E 42 08 18 0E 93 11 24 D2 B3 01 02 02 20 3E E3
-1E 53 F2 D0 03 00 0D 02 3E 90 0A 00 AC 27 3E 90
-16 00 A9 2F 2E 93 78 27 81 2F 30 4D 60 49 06 0D
-1B 5B 37 6D 23 00 22 49 E2 46 60 49 1F 46 61 73
-74 46 6F 72 74 68 20 56 33 30 30 20 28 43 29 4A
-2E 4D 2E 54 68 6F 6F 72 65 6E 73 20 22 49 34 44
-80 FF F2 46 28 45 D2 46 60 49 0B 62 79 74 65 73
-20 66 72 65 65 20 24 47 98 4D F0 52 04 43 4F 4C
-44 00 92 B3 CA 05 FD 23 B2 40 04 A5 20 01 B2 40
-88 5A 5C 01 92 D3 04 02 B2 40 FE FF 02 02 92 C3
-06 02 B2 43 26 02 B2 43 22 02 E2 D3 25 02 F2 43
-22 03 F2 43 26 03 F2 40 A5 00 61 01 82 43 66 01
-39 40 80 00 B2 40 33 00 64 01 D2 43 61 01 92 D2
-9E 01 08 18 38 40 59 14 18 83 FE 23 19 83 FA 23
-B2 D2 B0 01 F2 D0 10 00 2A 03 F2 C0 40 00 A1 04
-39 40 00 FC 29 83 89 43 00 1C FC 23 39 40 34 00
-29 83 B9 40 EE 55 CC FF FB 23 B2 40 30 48 F0 FF
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 92 C3 C0 05 92 D3 DA 05 3F 40 80 1C 31 40
-E0 1C 30 12 54 55 42 3F 38 40 C0 1D 39 48 2A 48
-09 5A 1A 52 C4 1D 09 9A 03 24 7E 9A FC 27 1A 83
-0E 4A 2A 88 82 4A C4 1D 30 4D B6 54 09 32 43 4F
-4E 53 54 41 4E 54 87 12 80 4F D6 4B D6 4B 98 4F
-D2 56 2F 83 9F 4E 02 00 00 00 2E 4E 3D 41 30 4D
-BC 56 09 32 56 41 52 49 41 42 4C 45 87 12 80 4F
-34 44 04 00 06 47 98 4F 2A 44 1C 15 B0 12 2A 44
-C4 49 1C 4A 32 47 10 57 D8 4A 28 47 CC 4D 48 57
-12 57 29 4E 39 90 86 12 02 20 2E 53 15 3C 39 90
-85 12 03 20 1E 4E 02 00 0F 3C 39 90 84 12 0C 20
-2E 52 B9 90 D0 56 02 00 04 24 B9 90 F8 56 02 00
-03 20 B0 12 D2 56 48 57 1B 17 30 41 32 B0 00 02
-01 24 3E 4F 30 41 3E 40 28 00 B0 12 FA 56 B0 12
-4C 57 19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40
+00 00 F6 3F 3E 4F 30 4D 90 46 85 2B 4C 4F 4F 50
+39 40 64 46 E5 3F 06 50 04 4D 4F 56 45 00 0A 4E
+38 4F 39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C
+F8 49 00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A
+19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 14 48
+CA 1D F2 44 2A 44 84 12 7E 50 AE 4F 46 53 DE 4F
+BE 4C 32 4F 3A 50 5A 54 64 48 66 51 80 51 8E 4F
+00 52 00 00 2C 54 E8 4C 78 4E 00 00 84 12 7E 50
+84 5B 76 5B 2C 59 4E 5A F2 58 00 00 68 5B 00 00
+E8 58 92 5B 4A 59 88 59 32 57 00 00 00 00 2A 5A
+AA 50 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D C6 3F
+3A 40 0E 00 39 40 CC 1D 38 40 CA 1D B9 3F 82 43
+CC 1D 30 4D 92 42 CA 1D DA 1D 30 4D 86 50 EE 50
+F4 50 04 51 3A 4E 82 4A C8 1D 2E 4E 82 4E C6 1D
+3D 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98
+FC 2B 89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23
+3E 4F 3D 41 30 4D 32 4D 09 50 57 52 5F 53 54 41
+54 45 84 12 FC 50 D0 50 9E 5B CC 4F 09 52 53 54
+5F 53 54 41 54 45 92 42 0E 18 46 51 92 42 0C 18
+48 51 EF 3F 38 51 08 50 57 52 5F 48 45 52 45 00
+92 42 C8 1D 46 51 92 42 C6 1D 48 51 30 4D 4C 51
+08 52 53 54 5F 48 45 52 45 00 92 42 C8 1D 0E 18
+92 42 C6 1D 0C 18 EC 3F BC 4F 04 57 49 50 45 00
+39 40 10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 46
+DE 46 B2 40 0A 52 08 52 B2 40 D0 50 0E 18 B2 40
+9E 5B 0C 18 30 12 56 51 B2 40 86 47 84 47 B2 40
+08 48 06 48 B2 40 98 46 96 46 B2 40 18 00 0A 18
+37 40 1A 44 36 40 92 44 35 40 0E 44 34 40 00 44
+B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41 9A 51
+04 57 41 52 4D 00 30 40 0A 52 3D 40 3E 52 92 C3
+30 01 1E 42 08 18 0E 93 11 24 D2 B3 01 02 02 20
+3E E3 1E 53 F2 D0 03 00 0D 02 3E 90 0A 00 B8 27
+3E 90 16 00 B5 2F 2E 93 84 27 8D 2F 30 4D 1E 48
+06 0D 1B 5B 37 6D 23 00 D6 47 34 46 1E 48 19 46
+61 73 74 46 6F 72 74 68 20 C2 A9 4A 2E 4D 2E 54
+68 6F 6F 72 65 6E 73 20 D6 47 14 48 30 FF A0 4A
+B8 44 24 46 1E 48 0A 62 79 74 65 73 20 66 72 65
+65 00 3C 46 9A 4C 82 4F 04 43 4F 4C 44 00 92 B3
+CA 05 FD 23 B2 40 04 A5 20 01 3E 52 B2 40 88 5A
+5C 01 B2 40 FE FF 02 02 B2 D3 06 02 B2 D3 26 02
+B2 40 FF BF 22 02 E2 D3 25 02 F2 43 22 03 F2 D3
+26 03 F2 40 A5 00 61 01 82 43 66 01 39 40 80 00
+B2 40 33 00 64 01 D2 43 61 01 92 D2 9E 01 08 18
+38 40 59 14 18 83 FE 23 19 83 FA 23 B2 D2 B0 01
+F2 D0 10 00 2A 03 F2 C0 40 00 A1 04 39 40 00 08
+29 83 89 43 00 1C FC 23 39 40 34 00 29 83 B9 40
+9C 52 CC FF FB 23 B2 40 26 47 F0 FF B2 40 81 00
+C0 05 92 42 02 18 C6 05 92 42 04 18 C8 05 92 C3
+C0 05 92 D3 DA 05 3F 40 80 1C 31 40 E0 1C 30 12
+06 52 4B 3F 88 52 07 43 4F 4D 50 41 52 45 0C 4E
+38 4F 3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30
+1C 83 07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43
+30 4D 1E 43 30 4D B2 4D 86 5B 54 48 45 4E 5D 00
+30 4D 78 53 86 5B 45 4C 53 45 5D 00 87 12 14 48
+00 00 C6 44 42 4B 80 48 24 4B 34 44 40 46 EE 53
+44 44 1E 48 06 5B 54 48 45 4E 5D 00 4E 53 4A 46
+BE 53 F8 47 D0 44 58 44 4A 46 94 53 2A 44 44 44
+1E 48 06 5B 45 4C 53 45 5D 00 4E 53 4A 46 DC 53
+F8 47 D0 44 58 44 4A 46 92 53 2A 44 1E 48 04 5B
+49 46 5D 00 4E 53 4A 46 94 53 3C 46 92 53 F8 47
+1E 48 05 0D 0A 6B 6F 20 D6 47 8C 47 32 4B 3C 46
+94 53 84 53 84 5B 49 46 5D 00 0E 93 3E 4F BE 27
+30 4D 04 54 89 5B 44 45 46 49 4E 45 44 5D 87 12
+42 4B 80 48 EE 48 6A 44 2A 44 14 54 8B 5B 55 4E
+44 45 46 49 4E 45 44 5D 87 12 42 4B 80 48 EE 48
+6A 44 00 45 2A 44 48 54 3D 41 B2 4E 0E 18 A2 4E
+0C 18 3E 4F 30 40 56 51 48 50 06 4D 41 52 4B 45
+52 00 B0 12 B8 4D BA 40 84 12 FC FF BA 40 46 54
+FE FF 9A 42 C8 1D 00 00 28 83 8A 48 02 00 A2 52
+C6 1D 30 40 00 4E 1C 15 B0 12 2A 44 80 48 EE 48
+4A 46 9C 54 AA 49 40 46 CE 4C B6 54 9E 54 39 4E
+39 80 86 12 08 24 19 53 02 20 2E 4E 04 3C 2E 53
+19 53 01 24 2E 82 1B 17 30 41 3E 40 28 00 B0 12
+86 54 19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40
 29 00 1C 15 12 12 C4 1D 92 53 C4 1D B0 12 2A 44
-C4 49 D8 4A 28 47 94 57 8A 57 21 53 3E 90 10 00
-87 2D DA 2B 96 57 B2 41 C4 1D D6 3F 87 12 B0 45
-98 56 A4 57 0C 43 1B 42 C6 1D A2 53 C6 1D 6A 4E
-3E 4F 7A 90 23 00 2F 20 92 53 C4 1D B0 12 FA 56
-B0 12 4C 57 0E 93 03 20 3C 40 00 03 21 3C 1E 93
-03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40 20 03
-17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92 03 20
-3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03 08 3C
+80 48 AA 49 40 46 F4 54 EA 54 21 53 3E 90 10 00
+7D 2D E1 2B F6 54 B2 41 C4 1D DD 3F 87 12 42 4B
+74 48 04 55 0C 43 1B 42 C6 1D A2 53 C6 1D 6A 4E
+3E 4F 7A 90 23 00 27 20 92 53 C4 1D B0 12 86 54
+3C 40 00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24
+3C 40 20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24
+3C 40 30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24
 3C 40 30 00 19 42 C6 1D A2 53 C6 1D 89 4E 00 00
-3E 4F 3D 41 30 4D 7A 90 26 00 09 20 3C 40 10 02
-92 53 C4 1D B0 12 FA 56 B0 12 4C 57 EB 3F 7A 90
-40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12 72 57
-0C 20 3C 50 10 00 3E 40 2B 00 B0 12 72 57 92 92
-C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E D8 3F
-B0 12 72 57 FA 23 3C 50 10 00 B0 12 56 57 EF 3F
-0C 43 1B 42 C6 1D A2 53 C6 1D 87 12 B0 45 98 56
-82 58 FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
-82 00 C6 3F B0 12 72 57 E1 23 3C 50 80 00 B0 12
-56 57 DC 3F 20 48 04 52 45 54 49 00 87 12 34 44
-00 13 D6 4B 2A 44 34 44 2C 00 9C 57 7A 58 C0 58
-2E 4E 0E DC 09 4B A2 3F 4C 50 03 4D 4F 56 84 12
-B6 58 00 40 CA 58 05 4D 4F 56 2E 42 84 12 B6 58
-40 40 00 00 03 41 44 44 84 12 B6 58 00 50 E4 58
-05 41 44 44 2E 42 84 12 B6 58 40 50 F0 58 04 41
-44 44 43 00 84 12 B6 58 00 60 FE 58 06 41 44 44
-43 2E 42 00 84 12 B6 58 40 60 A6 58 04 53 55 42
-43 00 84 12 B6 58 00 70 1C 59 06 53 55 42 43 2E
-42 00 84 12 B6 58 40 70 2A 59 03 53 55 42 84 12
-B6 58 00 80 3A 59 05 53 55 42 2E 42 84 12 B6 58
-40 80 2E 50 03 43 4D 50 84 12 B6 58 00 90 54 59
-05 43 4D 50 2E 42 84 12 B6 58 40 90 1C 50 04 44
-41 44 44 00 84 12 B6 58 00 A0 6E 59 06 44 41 44
-44 2E 42 00 84 12 B6 58 40 A0 60 59 03 42 49 54
-84 12 B6 58 00 B0 8C 59 05 42 49 54 2E 42 84 12
-B6 58 40 B0 98 59 03 42 49 43 84 12 B6 58 00 C0
-A6 59 05 42 49 43 2E 42 84 12 B6 58 40 C0 B2 59
-03 42 49 53 84 12 B6 58 00 D0 C0 59 05 42 49 53
-2E 42 84 12 B6 58 40 D0 00 00 03 58 4F 52 84 12
-B6 58 00 E0 DA 59 05 58 4F 52 2E 42 84 12 B6 58
-40 E0 0C 59 03 41 4E 44 84 12 B6 58 00 F0 F4 59
-05 41 4E 44 2E 42 84 12 B6 58 40 F0 B0 45 9C 57
-12 5A 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
-4F 3F 46 59 03 52 52 43 84 12 0C 5A 00 10 24 5A
-05 52 52 43 2E 42 84 12 0C 5A 40 10 30 5A 04 53
-57 50 42 00 84 12 0C 5A 80 10 3E 5A 03 52 52 41
-84 12 0C 5A 00 11 4C 5A 05 52 52 41 2E 42 84 12
-0C 5A 40 11 58 5A 03 53 58 54 84 12 0C 5A 80 11
-00 00 04 50 55 53 48 00 84 12 0C 5A 00 12 72 5A
-06 50 55 53 48 2E 42 00 84 12 0C 5A 40 12 CC 59
-04 43 41 4C 4C 00 84 12 0C 5A 80 12 1A 53 0E 4A
-87 12 E2 46 60 49 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 48 4D B0 45 98 56 BC 5A 92 53 C4 1D
-3E 40 2C 00 B0 12 2A 44 C4 49 D8 4A 28 47 CC 4D
-70 58 D4 5A 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F
-66 5A 06 52 52 43 4D 2E 41 00 84 12 B6 5A 40 00
-02 5B 04 52 52 43 4D 00 84 12 B6 5A 50 00 12 5B
-06 52 52 41 4D 2E 41 00 84 12 B6 5A 40 01 20 5B
-04 52 52 41 4D 00 84 12 B6 5A 50 01 30 5B 06 52
-4C 41 4D 2E 41 00 84 12 B6 5A 40 02 3E 5B 04 52
-4C 41 4D 00 84 12 B6 5A 50 02 4E 5B 06 52 52 55
-4D 2E 41 00 84 12 B6 5A 40 03 5C 5B 04 52 52 55
-4D 00 84 12 B6 5A 50 03 80 5A 07 50 55 53 48 4D
-2E 41 84 12 B6 5A 00 14 7A 5B 05 50 55 53 48 4D
-84 12 B6 5A 00 15 8A 5B 06 50 4F 50 4D 2E 41 00
-84 12 B6 5A 00 16 98 5B 04 50 4F 50 4D 00 84 12
-B6 5A 00 17 85 12 00 3C 6C 5B 03 53 3E 3D 85 12
-00 38 BA 5B 02 53 3C 00 85 12 00 34 A8 5B 03 30
-3E 3D 85 12 00 30 CE 5B 02 30 3C 00 85 12 00 30
-00 00 02 55 3C 00 85 12 00 2C E2 5B 03 55 3E 3D
-85 12 00 28 D8 5B 03 30 3C 3E 85 12 00 24 F6 5B
-02 30 3D 00 85 12 00 20 00 00 02 49 46 00 1A 42
-C6 1D 8A 4E 00 00 A2 53 C6 1D 0E 4A 30 4D EC 5B
-04 54 48 45 4E 00 1A 42 C6 1D 08 4E 3E 4F 09 48
-29 53 0A 89 0A 11 3A 90 00 02 31 2F 88 DA 00 00
-30 4D 7C 59 04 45 4C 53 45 00 1A 42 C6 1D BA 40
-00 3C 00 00 A2 53 C6 1D 2F 83 8F 4A 00 00 E3 3F
-20 5C 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
-C6 1D 2A 83 0A 89 0A 11 3A 90 00 FE 10 3B 3A F0
-FF 03 08 DA 89 48 00 00 A2 53 C6 1D 30 4D 00 5A
-05 41 47 41 49 4E 87 12 B4 5B 68 5C 2A 44 00 00
-05 57 48 49 4C 45 87 12 0E 5C 78 44 2A 44 C4 5B
-06 52 45 50 45 41 54 00 87 12 B4 5B 68 5C 26 5C
-2A 44 C4 5C 3D 41 2E 4E 08 4E 3E 4F 2A 48 0A 93
-88 43 00 00 CA 23 98 42 C6 1D 00 00 30 4D 90 5A
-03 42 57 31 84 12 C2 5C E0 1D E0 5C 03 42 57 32
-84 12 C2 5C E2 1D EC 5C 03 42 57 33 84 12 C2 5C
-E4 1D 04 5D 3D 41 1A 42 C6 1D 2E 4E 28 4E 08 93
-8E 43 00 00 8B 23 BA 4F 00 00 A2 53 C6 1D 8E 4A
-00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12 02 5D
-E6 1D 28 5D 03 46 57 32 84 12 02 5D E8 1D 34 5D
-03 46 57 33 84 12 02 5D EA 1D 3E 90 00 30 07 24
-3E E0 00 04 3E B0 00 10 02 24 3E E0 00 08 30 4D
-40 5D 04 47 4F 54 4F 00 87 12 B4 5B BE 4D CC 4B
-2A 44 00 00 05 3F 47 4F 54 4F 87 12 4A 5D BE 4D
-CC 4B 2A 44 00 00 03 4A 4D 50 87 12 BE 4D 96 5C
-2A 44 74 5D 04 3F 4A 4D 50 00 87 12 4A 5D BE 4D
-78 44 68 5C 2A 44 87 12 B0 45 98 56 AE 5D 69 4E
-3E 4F 3C 4F 2C 4C 1B 42 C6 1D A2 53 C6 1D 79 90
-52 00 0A 20 B0 12 72 57 5E 0E 5E 0E 0E DC 8B 4E
-00 00 0E 4B 3D 41 30 4D 79 90 23 00 0D 20 3C C0
-40 00 92 53 C4 1D A2 53 C6 1D B0 12 FA 56 BB 4F
-02 00 3E F0 0F 00 E8 3F 79 90 26 00 03 20 3C E0
-E0 00 EF 3F 3C C0 F0 00 79 90 40 00 12 20 92 53
-C4 1D B0 12 72 57 D8 23 3C D0 10 00 3E 40 2B 00
-B0 12 72 57 92 92 C0 1D C4 1D CE 27 92 53 C4 1D
-CB 3F 3C D0 30 00 A2 53 C6 1D 3E 40 28 00 B0 12
-FA 56 BB 4F 02 00 3E 40 29 00 EA 3F 87 12 B0 45
-98 56 54 5E 3B 4F 2C 4B 69 4E 7E 40 20 00 79 90
-52 00 03 20 B0 12 72 57 B1 3F 3C C0 F0 00 A2 53
-C6 1D 79 90 26 00 09 20 3C D0 60 00 92 53 C4 1D
-B0 12 FA 56 BB 4F 02 00 A1 3F 3C D0 70 00 3E 40
-28 00 B0 12 FA 56 BB 4F 02 00 3E 40 29 00 E2 3F
-34 44 2C 00 A6 5D 4C 5E 62 44 2A 44 D6 58 04 4D
-4F 56 41 00 84 12 A0 5E C0 00 F8 5C 04 43 4D 50
-41 00 84 12 A0 5E D0 00 90 5C 04 41 44 44 41 00
-84 12 A0 5E E0 00 B0 5C 04 53 55 42 41 00 84 12
-A0 5E F0 00 BC 5E 05 43 41 4C 4C 41 87 12 B0 45
-98 56 F4 5E 1B 42 C6 1D A2 53 C6 1D 6E 4E 3C 40
-34 01 7E 90 52 00 0B 20 7E 40 20 00 B0 12 72 57
-5C 0E 0C DE 8B 4C 00 00 3E 4F 3D 41 30 4D 2C 53
-7E 90 40 00 0B 20 92 53 C4 1D 7E 40 20 00 B0 12
-72 57 EE 23 1C 53 3E 40 2B 00 E8 3F A2 53 C6 1D
-7E 90 23 00 09 20 3C 40 3B 01 92 53 C4 1D B0 12
-FA 56 BB 4F 02 00 DC 3F 7E 90 26 00 02 20 2C 53
-F4 3F 7E 40 28 00 1C 83 B0 12 FA 56 BB 4F 02 00
-3E 40 29 00 CB 3F 87 12 B0 45 98 56 7E 5F 69 4E
-3E 4F 3C 40 00 18 79 90 52 00 05 20 B0 12 72 57
-0E 4C 3D 41 30 4D 82 43 EE 1D 79 90 23 00 0B 20
-92 53 C4 1D B0 12 FA 56 2F 53 3E F0 0F 00 5E 0A
-5E 0E 0C DE ED 3F 79 90 26 00 F2 27 79 90 40 00
-12 20 92 53 C4 1D B0 12 72 57 E2 23 3E 40 2B 00
-92 53 C4 1D B0 12 72 57 92 92 C0 1D C4 1D D8 27
-92 53 C4 1D D5 3F 3E 40 28 00 B0 12 FA 56 8F 4E
-00 00 3E 40 29 00 B0 12 72 57 3E 4F 3E F0 0F 00
-0C DE EA 3F 87 12 B0 45 98 56 0C 60 3C 4F 69 4E
-3E 40 20 00 79 90 52 00 BB 27 82 43 EE 1D 79 90
-26 00 08 20 92 53 C4 1D B0 12 FA 56 2F 53 3E F0
-0F 00 BF 3F 3E 40 28 00 B0 12 FA 56 F7 3F 1B 42
-C6 1D A2 53 C6 1D 0C 4E 3E 4F 1C D2 EE 1D 82 43
-EE 1D 3C DE 8B 4C 00 00 B2 41 C4 1D 30 4D 34 44
-C4 1D F2 44 B0 44 34 44 2C 00 76 5F 04 60 3E 60
-24 47 B6 58 AE 5E 04 4D 4F 56 58 00 84 12 5E 60
-40 00 00 40 76 60 06 4D 4F 56 58 2E 41 00 84 12
-5E 60 00 00 40 40 86 60 06 4D 4F 56 58 2E 42 00
-84 12 5E 60 40 00 40 40 CA 5E 04 41 44 44 58 00
-84 12 5E 60 40 00 00 50 AA 60 06 41 44 44 58 2E
-41 00 84 12 5E 60 00 00 40 50 BA 60 06 41 44 44
-58 2E 42 00 84 12 5E 60 40 00 40 50 CC 60 05 41
-44 44 43 58 84 12 5E 60 40 00 00 60 DE 60 07 41
-44 44 43 58 2E 41 84 12 5E 60 00 00 40 60 EE 60
-07 41 44 44 43 58 2E 42 84 12 5E 60 40 00 40 60
-D8 5E 05 53 55 42 43 58 84 12 5E 60 40 00 00 70
-12 61 07 53 55 42 43 58 2E 41 84 12 5E 60 00 00
-40 70 22 61 07 53 55 42 43 58 2E 42 84 12 5E 60
-40 00 40 70 34 61 04 53 55 42 58 00 84 12 5E 60
-40 00 00 80 46 61 06 53 55 42 58 2E 41 00 84 12
-5E 60 00 00 40 80 56 61 06 53 55 42 58 2E 42 00
-84 12 5E 60 40 00 40 80 E6 5E 04 43 4D 50 58 00
-84 12 5E 60 40 00 00 90 7A 61 06 43 4D 50 58 2E
-41 00 84 12 5E 60 00 00 40 90 8A 61 06 43 4D 50
-58 2E 42 00 84 12 5E 60 40 00 40 90 44 5C 05 44
-41 44 44 58 84 12 5E 60 40 00 00 A0 AE 61 07 44
-41 44 44 58 2E 41 84 12 5E 60 00 00 40 A0 BE 61
-07 44 41 44 44 58 2E 42 84 12 5E 60 40 00 40 A0
-9C 61 04 42 49 54 58 00 84 12 5E 60 40 00 00 B0
-E2 61 06 42 49 54 58 2E 41 00 84 12 5E 60 00 00
-40 B0 F2 61 06 42 49 54 58 2E 42 00 84 12 5E 60
-40 00 40 B0 04 62 04 42 49 43 58 00 84 12 5E 60
-40 00 00 C0 16 62 06 42 49 43 58 2E 41 00 84 12
-5E 60 00 00 40 C0 26 62 06 42 49 43 58 2E 42 00
-84 12 5E 60 40 00 40 C0 38 62 04 42 49 53 58 00
-84 12 5E 60 40 00 00 D0 4A 62 06 42 49 53 58 2E
-41 00 84 12 5E 60 00 00 40 D0 5A 62 06 42 49 53
-58 2E 42 00 84 12 5E 60 40 00 40 D0 E6 59 04 58
-4F 52 58 00 84 12 5E 60 40 00 00 E0 7E 62 06 58
-4F 52 58 2E 41 00 84 12 5E 60 00 00 40 E0 8E 62
-06 58 4F 52 58 2E 42 00 84 12 5E 60 40 00 40 E0
-00 61 04 41 4E 44 58 00 84 12 5E 60 40 00 00 F0
-B2 62 06 41 4E 44 58 2E 41 00 84 12 5E 60 00 00
-40 F0 C2 62 06 41 4E 44 58 2E 42 00 84 12 5E 60
-40 00 40 F0 34 44 C4 1D F2 44 B0 44 B0 45 76 5F
-3E 60 24 47 0C 5A 68 61 04 52 52 43 58 00 84 12
-E4 62 40 00 00 10 F8 62 06 52 52 43 58 2E 41 00
-84 12 E4 62 00 00 40 10 08 63 06 52 52 43 58 2E
-42 00 84 12 E4 62 40 00 40 10 1A 63 04 52 52 55
-58 00 84 12 E4 62 40 01 00 10 2C 63 06 52 52 55
-58 2E 41 00 84 12 E4 62 00 01 40 10 3C 63 06 52
-52 55 58 2E 42 00 84 12 E4 62 40 01 40 10 4E 63
-05 53 57 50 42 58 84 12 E4 62 40 00 80 10 60 63
-07 53 57 50 42 58 2E 41 84 12 E4 62 00 00 80 10
-70 63 04 52 52 41 58 00 84 12 E4 62 40 00 00 11
-82 63 06 52 52 41 58 2E 41 00 84 12 E4 62 00 00
-40 11 92 63 06 52 52 41 58 2E 42 00 84 12 E4 62
-40 00 40 11 A4 63 04 53 58 54 58 00 84 12 E4 62
-40 00 80 11 B6 63 06 53 58 54 58 2E 41 00 84 12
-E4 62 00 00 80 11 00 5C 05 50 55 53 48 58 84 12
-E4 62 40 00 00 12 D8 63 07 50 55 53 48 58 2E 41
-84 12 E4 62 00 00 40 12 E8 63 07 50 55 53 48 58
-2E 42 84 12 E4 62 40 00 40 12 C6 63 03 52 50 54
-87 12 B0 45 98 56 18 64 29 4E 7E 40 20 00 79 90
-52 00 06 20 B0 12 72 57 03 24 3E D0 80 00 04 3C
-B0 12 FA 56 3E F0 0F 00 82 4E EE 1D 3E 4F 3D 41
-30 4D
+3E 4F 3D 41 30 4D 7A 90 26 00 07 20 3C 40 10 02
+92 53 C4 1D B0 12 86 54 ED 3F 7A 90 40 00 16 20
+3C 40 20 00 92 53 C4 1D B0 12 D2 54 0C 20 3C 50
+10 00 3E 40 2B 00 B0 12 D2 54 92 92 C0 1D C4 1D
+02 24 92 53 C4 1D 8E 10 0C 5E DA 3F B0 12 D2 54
+FA 23 3C 50 10 00 B0 12 BA 54 EF 3F 0C 43 1B 42
+C6 1D A2 53 C6 1D 87 12 42 4B 74 48 CE 55 FE 90
+26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C8 3F
+B0 12 D2 54 E1 23 3C 50 80 00 B0 12 BA 54 DC 3F
+D6 46 04 52 45 54 49 00 87 12 14 48 00 13 B0 4A
+2A 44 14 48 2C 00 FC 54 C6 55 0C 56 09 4B 2E 4E
+0E DC A4 3F FC 4E 03 4D 4F 56 84 12 02 56 00 40
+16 56 05 4D 4F 56 2E 42 84 12 02 56 40 40 00 00
+03 41 44 44 84 12 02 56 00 50 30 56 05 41 44 44
+2E 42 84 12 02 56 40 50 3C 56 04 41 44 44 43 00
+84 12 02 56 00 60 4A 56 06 41 44 44 43 2E 42 00
+84 12 02 56 40 60 F2 55 04 53 55 42 43 00 84 12
+02 56 00 70 68 56 06 53 55 42 43 2E 42 00 84 12
+02 56 40 70 76 56 03 53 55 42 84 12 02 56 00 80
+86 56 05 53 55 42 2E 42 84 12 02 56 40 80 DE 4E
+03 43 4D 50 84 12 02 56 00 90 A0 56 05 43 4D 50
+2E 42 84 12 02 56 40 90 CC 4E 04 44 41 44 44 00
+84 12 02 56 00 A0 BA 56 06 44 41 44 44 2E 42 00
+84 12 02 56 40 A0 AC 56 03 42 49 54 84 12 02 56
+00 B0 D8 56 05 42 49 54 2E 42 84 12 02 56 40 B0
+E4 56 03 42 49 43 84 12 02 56 00 C0 F2 56 05 42
+49 43 2E 42 84 12 02 56 40 C0 FE 56 03 42 49 53
+84 12 02 56 00 D0 0C 57 05 42 49 53 2E 42 84 12
+02 56 40 D0 00 00 03 58 4F 52 84 12 02 56 00 E0
+26 57 05 58 4F 52 2E 42 84 12 02 56 40 E0 58 56
+03 41 4E 44 84 12 02 56 00 F0 40 57 05 41 4E 44
+2E 42 84 12 02 56 40 F0 42 4B FC 54 5E 57 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 92 56
+03 52 52 43 84 12 58 57 00 10 70 57 05 52 52 43
+2E 42 84 12 58 57 40 10 7C 57 04 53 57 50 42 00
+84 12 58 57 80 10 8A 57 03 52 52 41 84 12 58 57
+00 11 98 57 05 52 52 41 2E 42 84 12 58 57 40 11
+A4 57 03 53 58 54 84 12 58 57 80 11 00 00 04 50
+55 53 48 00 84 12 58 57 00 12 BE 57 06 50 55 53
+48 2E 42 00 84 12 58 57 40 12 18 57 04 43 41 4C
+4C 00 84 12 58 57 80 12 1A 53 0E 4A 87 12 34 46
+1E 48 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+4C 4C 42 4B 74 48 08 58 92 53 C4 1D 3E 40 2C 00
+B0 12 2A 44 80 48 AA 49 40 46 CE 4C BC 55 20 58
+0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E
+94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F B2 57 04 52
+52 43 4D 00 84 12 02 58 50 00 4E 58 04 52 52 41
+4D 00 84 12 02 58 50 01 5C 58 04 52 4C 41 4D 00
+84 12 02 58 50 02 6A 58 04 52 52 55 4D 00 84 12
+02 58 50 03 CC 57 05 50 55 53 48 4D 84 12 02 58
+00 15 86 58 04 50 4F 50 4D 00 84 12 02 58 00 17
+78 58 03 53 3E 3D 85 12 00 38 A2 58 02 53 3C 00
+85 12 00 34 94 58 03 30 3E 3D 85 12 00 30 B6 58
+02 30 3C 00 85 12 00 30 00 00 02 55 3C 00 85 12
+00 2C CA 58 03 55 3E 3D 85 12 00 28 C0 58 03 30
+3C 3E 85 12 00 24 DE 58 02 30 3D 00 85 12 00 20
+00 00 02 49 46 00 1A 42 C6 1D 8A 4E 00 00 A2 53
+C6 1D 0E 4A 30 4D D4 58 04 54 48 45 4E 00 1A 42
+C6 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
+00 02 63 2F 88 DA 00 00 30 4D C8 56 04 45 4C 53
+45 00 1A 42 C6 1D BA 40 00 3C 00 00 A2 53 C6 1D
+2F 83 8F 4A 00 00 E3 3F 08 59 05 55 4E 54 49 4C
+3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11
+3A 90 00 FE 42 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C6 1D 30 4D 4C 57 05 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 87 12
+F6 58 76 44 2A 44 AC 58 06 52 45 50 45 41 54 00
+87 12 7E 59 0E 59 2A 44 AA 59 3D 41 08 4E 3E 4F
+2A 48 B2 92 C4 1D CD 2F 98 42 C6 1D 00 00 30 4D
+DC 57 03 42 57 31 84 12 A8 59 00 00 C2 59 03 42
+57 32 84 12 A8 59 00 00 CE 59 03 42 57 33 84 12
+A8 59 00 00 E6 59 3D 41 1A 42 C6 1D 28 4E B2 92
+C4 1D 90 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00
+3E 4F 30 4D 00 00 03 46 57 31 84 12 E4 59 00 00
+06 5A 03 46 57 32 84 12 E4 59 00 00 12 5A 03 46
+57 33 84 12 E4 59 00 00 00 00 05 3F 47 4F 54 4F
+3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10 02 24
+3E E0 00 08 87 12 C0 4C DA 4A 2A 44 1E 5A 04 47
+4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C F2 3F
+87 12 42 4B 74 48 68 5A 69 4E 3E 4F 3C 4F 2C 4C
+1B 42 C6 1D A2 53 C6 1D 79 90 52 00 0A 20 B0 12
+D2 54 5E 0E 5E 0E 0E DC 8B 4E 00 00 0E 4B 3D 41
+30 4D 79 90 23 00 0D 20 3C C0 40 00 92 53 C4 1D
+A2 53 C6 1D B0 12 86 54 BB 4F 02 00 3E F0 0F 00
+E8 3F 79 90 26 00 03 20 3C E0 E0 00 EF 3F 3C C0
+F0 00 79 90 40 00 12 20 92 53 C4 1D B0 12 D2 54
+D8 23 3C D0 10 00 3E 40 2B 00 B0 12 D2 54 92 92
+C0 1D C4 1D CE 27 92 53 C4 1D CB 3F 3C D0 30 00
+A2 53 C6 1D 3E 40 28 00 B0 12 86 54 BB 4F 02 00
+3E 40 29 00 EA 3F 87 12 42 4B 74 48 0E 5B 3B 4F
+2C 4B 69 4E 7E 40 20 00 79 90 52 00 03 20 B0 12
+D2 54 B1 3F 3C C0 F0 00 A2 53 C6 1D 79 90 26 00
+09 20 3C D0 60 00 92 53 C4 1D B0 12 86 54 BB 4F
+02 00 A1 3F 3C D0 70 00 3E 40 28 00 B0 12 86 54
+BB 4F 02 00 3E 40 29 00 E2 3F 14 48 2C 00 60 5A
+06 5B 66 44 2A 44 22 56 04 4D 4F 56 41 00 84 12
+5A 5B C0 00 DA 59 04 43 4D 50 41 00 84 12 5A 5B
+D0 00 78 59 04 41 44 44 41 00 84 12 5A 5B E0 00
+98 59 04 53 55 42 41 00 84 12 5A 5B F0 00
 @FFFE
-EE 55
+9C 52
 q
diff --git a/binaries/MSP_EXP430FR5994.txt b/binaries/MSP_EXP430FR5994.txt
new file mode 100644 (file)
index 0000000..5dc8192
--- /dev/null
@@ -0,0 +1,671 @@
+@1800
+10 00 08 00 A1 F7 80 3E 05 00 18 00 7A 69 C4 4D
+2D 01 FF B3 B6 42 C8 42 C6 60 02 61
+@4000
+2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
+8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 40
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 40
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 40
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 40 02 3E 52 00 0E 12 3E 4F 30 4D 70 40 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 40 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 40 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 40
+01 21 BE 4F 00 00 3E 4F 30 4D CC 40 02 30 3D 00
+1E 83 0E 7E 30 4D FC 40 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 41 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 40 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 41 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 41 02 23 53 00 87 12 88 41 C0 41
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 41
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 40 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 41 34 40 86 40 D4 40 BA 41
+92 40 F8 41 D4 41 38 44 A4 47 E0 43 2A 40 22 41
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 41 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 42 18 42 CC 05 2F 83 8F 4E
+00 00 B0 12 B6 42 92 B3 DC 05 FD 27 1E 42 CC 05
+B0 12 C8 42 30 4D A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C2 23 02 30 41 B2 40 13 00 CE 05 E2 D2
+23 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 42
+B0 12 B6 42 12 D2 0A 18 F9 3F 0D 12 3D 40 0A 43
+1B 42 32 20 9B 42 1E 20 16 00 3A 4F 09 4E 0E 43
+1C 42 1E 20 1B 42 20 20 02 3C 0C 43 2D 83 0C 9B
+14 2C 58 4C 00 1E 1C 53 78 90 20 00 07 2C 78 90
+0A 00 F5 23 82 4C 1E 20 3D 41 30 4D 0E 99 3D 24
+CA 48 00 00 1A 53 1E 53 38 3C 1A 15 B0 12 0C 62
+19 17 DE 3F F0 40 06 41 43 43 45 50 54 00 30 40
+52 43 3C 40 C2 43 3B 40 8C 43 2D 15 0A 4E 2E 4F
+0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 B6 43 92 B3
+DC 05 05 24 18 42 CC 05 38 90 0A 00 9C 23 21 53
+3D 15 AC 3F 21 52 3A 17 58 42 CC 05 48 9C 08 2C
+48 9B 9A 27 78 92 11 20 2E 9F 0F 24 1E 83 05 3C
+0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 DC 05 FD 27
+82 48 CE 05 30 4D B8 43 2D 83 92 B3 DC 05 E4 23
+FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F 3D 41
+B2 40 18 00 0A 18 30 4D 9E 40 04 45 4D 49 54 00
+30 40 E4 43 08 4E 3E 4F E0 3F 85 12 3C 1D 3F 80
+06 00 8F 4E 04 00 3E 40 54 00 9F 42 EC 43 00 00
+AF 4F 02 00 A4 3F DA 43 04 45 43 48 4F 00 B2 40
+82 48 B0 43 82 43 DE 1D 30 4D 32 42 06 4E 4F 45
+43 48 4F 00 B2 40 30 4D B0 43 92 43 DE 1D 30 4D
+20 42 04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40
+4E 44 28 4F 7E 48 8F 48 00 00 2F 83 C9 3F 50 44
+2D 83 91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D
+D0 41 02 43 52 00 30 40 6A 44 87 12 80 44 02 0D
+0A 00 38 44 2A 40 2F 83 8F 4E 00 00 3E 4D 30 4D
+2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
+0D 63 30 4D F2 41 82 53 22 00 82 43 B4 1D 87 12
+76 44 80 44 12 47 76 44 22 00 E2 44 AE 44 B2 40
+20 00 B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41
+3E 4F 30 4D 1C 44 82 2E 22 00 87 12 9A 44 76 44
+38 44 12 47 2A 40 48 43 05 3C 00 00 04 57 4F 52
+44 00 48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52
+C4 1D 09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20
+0E 4A 1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D
+3B 40 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C
+09 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82
+B4 1D F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D
+08 8E CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00
+2F 83 0C 4E 65 4C 74 40 80 00 3B 40 CA 1D 3E 4B
+0E 93 1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53
+1E 4E FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95
+F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23
+19 B3 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83
+8F 4C 00 00 35 40 0E 40 34 40 00 40 30 4D 82 40
+07 3E 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82
+1B 42 DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28
+7A 80 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C
+82 49 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04
+18 42 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C
+00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02
+1B 42 DC 1D 0C 43 2D 15 3D 40 56 46 09 43 08 43
+3F 82 8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00
+04 28 C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00
+07 24 3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23
+1C 53 1E 83 EA 3F 58 46 2F 24 2D 83 7A 90 28 00
+CB 27 32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00
+23 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C
+69 49 79 80 30 00 79 90 0A 00 05 28 79 80 07 00
+79 90 0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E 41 2A 17 E6 3F 9F 4F 04 00 02 00
+AF 4F 04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D
+06 24 32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53
+9F 4F 02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3
+BF E3 02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00
+32 B0 00 02 01 20 2F 53 30 4D 7E 42 04 48 45 52
+45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 40
+01 2C 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F
+30 4D 46 43 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F
+30 4D 08 44 07 45 58 45 43 55 54 45 0A 4E 3E 4F
+00 4A 10 47 87 4C 49 54 45 52 41 4C 82 93 BE 1D
+0C 24 1A 42 C6 1D A2 52 C6 1D BA 40 76 44 00 00
+8A 4E 02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24
+19 4A 02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 62 44
+05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E
+FF FF 30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43
+C4 1D 30 4D 85 12 20 00 87 12 94 47 A4 47 E2 44
+B2 47 3D 40 BA 47 CC 22 82 3E BC 47 0A 4E 3E 4F
+3D 40 D2 47 23 27 3D 40 AC 47 1A E2 BE 1D A1 27
+B5 23 D4 47 3E 4F 3D 40 AC 47 B8 23 DE 53 00 00
+68 4E 08 5E F8 40 3F 00 00 00 3D 40 CC 4A CB 3F
+34 47 08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D
+3C 49 3B 49 3A 49 3D 15 B0 12 2A 40 A8 47 10 48
+B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D
+85 12 BE 1D 82 43 08 18 31 40 E0 1C B2 40 00 1C
+00 1C 82 43 BE 1D 30 4D 80 47 04 42 4F 4F 54 00
+82 93 08 18 1D 24 E2 B2 60 02 1A 20 2F 83 8F 4E
+00 00 1E 42 08 18 B0 12 2A 40 24 44 24 48 80 44
+0F 4C 4F 41 44 22 20 42 4F 4F 54 2E 34 54 48 22
+3C 42 8E 48 08 41 04 51 55 49 54 00 30 40 80 48
+B0 12 2A 40 24 48 66 44 EE 43 A4 47 E0 43 A8 47
+A4 40 0C 41 80 44 0C 73 74 61 63 6B 20 65 6D 70
+74 79 21 00 E6 48 76 44 30 FF 02 47 26 41 80 44
+0A 46 52 41 4D 20 66 75 6C 6C 21 00 E6 48 3C 42
+86 48 24 47 05 41 42 4F 52 54 3F 40 80 1C D6 3F
+C4 48 86 41 42 4F 52 54 22 00 87 12 9A 44 76 44
+E6 48 12 47 2A 40 8F 93 02 00 03 20 2F 52 3E 4F
+30 4D B0 12 EC 4E B0 12 B6 42 92 C3 DC 05 38 40
+A0 AA 39 42 03 43 19 83 FD 23 18 83 FA 23 92 B3
+DC 05 F3 23 87 12 60 4E 76 44 DE 1D EA 40 0E 44
+80 44 04 1B 5B 37 6D 00 38 44 58 40 40 42 40 49
+66 44 80 44 05 6C 69 6E 65 3A 38 44 D0 40 24 42
+38 44 80 44 04 1B 5B 30 6D 00 38 44 CA 48 00 00
+83 5B 27 5D 87 12 66 49 76 44 76 44 12 47 12 47
+2A 40 4A 45 01 27 87 12 A4 47 E2 44 50 45 40 42
+74 49 2A 40 DC 47 32 41 81 5C 92 42 C0 1D C4 1D
+30 4D 50 49 81 5B 82 43 BE 1D 30 4D 78 49 01 5D
+B2 43 BE 1D 30 4D BE 4F 02 00 3E 4F 30 4D FC 46
+82 49 53 00 87 12 20 48 EA 40 40 42 B8 49 54 49
+76 44 96 49 12 47 2A 40 66 49 96 49 2A 40 A0 49
+09 49 4D 4D 45 44 49 41 54 45 1A 42 B6 1D FA D0
+80 00 00 00 30 4D 76 48 88 50 4F 53 54 50 4F 4E
+45 00 87 12 A4 47 E2 44 50 45 58 40 40 42 74 49
+0C 41 40 42 02 4A 76 44 76 44 12 47 12 47 76 44
+12 47 12 47 2A 40 84 49 81 3B 82 93 BE 1D B5 27
+87 12 76 44 2A 40 12 47 A0 4A 86 49 2A 40 08 4A
+07 3A 4E 4F 4E 41 4D 45 30 12 46 4A 2F 83 8F 4E
+00 00 1E 42 C6 1D 1E B3 0E 63 0A 4E 39 40 00 02
+38 40 02 02 21 3C BA 40 87 12 FC FF A2 83 C6 1D
+B2 43 BE 1D 30 4D 20 4A 01 3A 30 12 46 4A 92 B3
+C6 1D A2 63 C6 1D 87 12 A4 47 E2 44 6E 4A 3D 41
+08 4E 7A 4E 5A D3 5A 53 0A 58 19 42 DA 1D 6E 4E
+3E F0 1E 00 09 5E 3E 4F 82 48 B6 1D 82 49 B8 1D
+82 4A BA 1D 82 4F BC 1D 2A 52 82 4A C6 1D 30 41
+82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D A8 49
+FE FF 89 48 00 00 30 4D 87 12 80 44 0F 73 74 61
+63 6B 20 6D 69 73 6D 61 74 63 68 21 F2 48 F2 47
+05 44 45 46 45 52 B0 12 5E 4A BA 40 30 40 FC FF
+BA 40 54 4A FE FF E3 3F 3A 48 06 43 52 45 41 54
+45 00 B0 12 5E 4A BA 40 85 12 FC FF 8A 4A FE FF
+D6 3F D0 4A 05 44 4F 45 53 3E 1A 42 BA 1D BA 40
+84 12 00 00 8A 4D 02 00 3D 41 30 4D B0 45 05 3E
+42 4F 44 59 2E 52 30 4D EA 4A 04 43 4F 44 45 00
+B0 12 5E 4A 82 43 D8 5F A2 82 C6 1D 87 12 CE 4D
+A0 4D 2A 40 2A 4B 07 43 4F 44 45 4E 4E 4D B0 12
+2C 4A F0 3F 00 00 07 45 4E 44 43 4F 44 45 87 12
+E8 4D A0 4A 2A 40 D2 48 03 41 53 4D B2 40 A4 4D
+DA 1D DE 3F 56 4B 06 45 4E 44 41 53 4D 00 87 12
+5E 4B 12 4E 2A 40 00 00 05 43 4F 4C 4F 4E 1A 42
+C6 1D BA 40 87 12 00 00 A2 53 C6 1D B2 43 BE 1D
+30 40 E8 4D 00 00 05 4C 4F 32 48 49 1A 42 C6 1D
+BA 40 B0 12 00 00 BA 40 2A 40 02 00 A2 52 C6 1D
+ED 3F C0 49 85 48 49 32 4C 4F 87 12 02 47 F4 4B
+12 47 86 49 CE 4D A0 4D 2A 40 C4 4B 82 49 46 00
+2F 83 8F 4E 00 00 1E 42 C6 1D A2 52 C6 1D BE 40
+40 42 00 00 2E 53 30 4D 04 4B 84 45 4C 53 45 00
+A2 52 C6 1D 1A 42 C6 1D BA 40 3C 42 FC FF 8E 4A
+00 00 2A 83 0E 4A 30 4D 32 44 84 54 48 45 4E 00
+9E 42 C6 1D 00 00 3E 4F 30 4D 46 4B 85 42 45 47
+49 4E 30 40 02 47 1A 4C 85 55 4E 54 49 4C 39 40
+40 42 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E
+FE FF 3E 4F 30 4D 68 4B 85 41 47 41 49 4E 39 40
+3C 42 EF 3F DC 44 85 57 48 49 4C 45 87 12 E0 4B
+76 40 2A 40 96 44 86 52 45 50 45 41 54 00 87 12
+5E 4C 20 4C 2A 40 FA 4B 82 44 4F 00 2F 83 8F 4E
+00 00 A2 53 C6 1D 1E 42 C6 1D BE 40 54 42 FE FF
+A2 53 00 1C 1A 42 00 1C 8A 43 00 00 30 4D 44 47
+84 4C 4F 4F 50 00 39 40 76 42 A2 52 C6 1D 1A 42
+C6 1D 8A 49 FC FF 8A 4E FE FF 1E 42 00 1C A2 83
+00 1C 2E 4E 0E 93 03 24 8E 4A 00 00 F6 3F 3E 4F
+30 4D 90 42 85 2B 4C 4F 4F 50 39 40 64 42 E5 3F
+B0 4C 04 4D 4F 56 45 00 0A 4E 38 4F 39 4F 3E 4F
+0A 93 11 24 08 99 0F 24 06 2C F8 49 00 00 18 53
+1A 83 FB 23 30 4D 08 5A 09 5A 19 83 18 83 E8 49
+00 00 1A 83 FA 23 30 4D 66 4C 0A 56 4F 43 41 42
+55 4C 41 52 59 00 87 12 F2 4A 76 44 10 00 76 44
+00 00 54 42 76 44 00 00 12 47 76 42 44 4D 02 47
+76 44 C8 1D 34 40 EA 40 12 47 F2 40 0A 4B 76 44
+CA 1D F2 40 2A 40 64 49 05 46 4F 52 54 48 84 12
+5E 4D C8 4D DA 63 CE 63 68 4D DC 4B E4 4C E8 63
+F8 4D 84 4E 8E 65 1E 69 40 68 00 00 CA 52 8E 49
+1E 4B 00 00 58 4C 09 41 53 53 45 4D 42 4C 45 52
+84 12 5E 4D A2 5E 3A 5E 9E 5D 62 59 06 58 00 00
+66 5C 00 00 C8 5F DC 5F 5E 58 9C 58 6E 5E 00 00
+00 00 3E 59 92 4D 96 4D 04 41 4C 53 4F 00 3A 40
+0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F D8 49 08 50
+52 45 56 49 4F 55 53 00 3A 40 0E 00 39 40 CC 1D
+38 40 CA 1D 8A 3F C6 44 04 4F 4E 4C 59 00 82 43
+CC 1D 30 4D 88 4C 0B 44 45 46 49 4E 49 54 49 4F
+4E 53 92 42 CA 1D DA 1D 30 4D 6E 4D FE 4D 12 4E
+22 4E 3A 4E 82 4A C8 1D 2E 4E 82 4E C6 1D 3D 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98 FC 2B
+89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23 3E 4F
+3D 41 30 4D DE 4D 09 50 57 52 5F 53 54 41 54 45
+84 12 1A 4E C4 4D 7A 69 76 4C 09 52 53 54 5F 53
+54 41 54 45 92 42 0E 18 64 4E 92 42 0C 18 66 4E
+EF 3F 56 4E 08 50 57 52 5F 48 45 52 45 00 92 42
+C8 1D 64 4E 92 42 C6 1D 66 4E 30 4D 6A 4E 08 52
+53 54 5F 48 45 52 45 00 92 42 C8 1D 0E 18 92 42
+C6 1D 0C 18 EC 3F 2A 4D 04 57 49 50 45 00 39 40
+10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 42 DE 42
+B2 40 4A 4F 48 4F B2 40 80 48 7E 48 B2 40 C4 4D
+0E 18 B2 40 7A 69 0C 18 30 12 74 4E B2 40 E4 43
+E2 43 B2 40 6A 44 68 44 B2 40 98 42 96 42 B2 40
+52 43 50 43 B2 40 3C 1D EC 43 1B 42 32 20 0B 93
+04 24 CB 43 02 00 2B 4B FA 3F B2 40 18 00 0A 18
+37 40 1A 40 36 40 92 40 35 40 0E 40 34 40 00 40
+B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41 B8 4E
+04 57 41 52 4D 00 30 40 4A 4F 3D 40 98 50 92 C3
+30 01 1E 42 08 18 0E 93 9E 24 D2 B3 01 02 02 20
+3E E3 1E 53 F2 D0 03 00 0D 02 E2 B2 60 02 8A 20
+39 42 B0 12 9E 60 D2 C3 23 02 2C 42 B2 40 95 00
+14 20 B2 40 00 40 18 20 B0 12 14 60 02 24 30 40
+3A 61 B0 12 9C 60 7A 93 FC 23 B2 40 87 AA 14 20
+92 43 16 20 B2 40 00 48 18 20 B0 12 14 60 29 42
+B0 12 9E 60 92 43 14 20 82 43 16 20 78 43 3C 42
+B2 40 00 77 18 20 B0 12 14 60 B2 40 40 69 18 20
+B0 12 5A 60 03 24 58 83 F3 23 D9 3F 0C 5C A2 43
+16 20 B2 40 00 50 18 20 B0 12 5A 60 D0 23 92 D3
+40 06 82 43 46 06 92 C3 40 06 B0 12 C4 60 38 40
+00 1E 92 48 C6 01 04 20 92 48 C8 01 06 20 5A 48
+C2 01 92 43 02 20 7A 80 06 00 0F 24 7A 82 0D 24
+A2 43 02 20 6A 53 09 24 5A 53 07 24 6A 52 05 24
+3A 50 0B 20 0C 4A 30 40 40 61 B0 12 C4 60 D2 48
+0D 00 12 20 19 48 0E 00 82 49 08 20 1A 48 16 00
+0A 93 02 20 1A 48 24 00 82 4A 0A 20 09 5A 82 49
+0C 20 09 5A A2 93 02 20 04 24 82 49 0E 20 39 50
+20 00 19 82 12 20 19 82 12 20 82 49 10 20 92 42
+02 20 2C 20 3E 90 0A 00 1A 27 3E 90 16 00 17 2F
+2E 93 E6 26 EF 2E 30 4D 80 44 06 0D 1B 5B 37 6D
+23 00 38 44 34 42 80 44 19 46 61 73 74 46 6F 72
+74 68 20 C2 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
+73 20 38 44 76 44 30 FF 02 47 B8 40 24 42 80 44
+0A 62 79 74 65 73 20 66 72 65 65 00 3C 42 40 49
+2C 4C 04 43 4F 4C 44 00 92 B3 CA 05 FD 23 B2 40
+04 A5 20 01 98 50 B2 40 88 5A 5C 01 B2 D3 06 02
+B2 40 FC FF 02 02 B2 43 26 02 B2 D3 22 02 E2 D2
+25 02 B2 43 42 02 B2 D3 46 02 B2 43 62 02 B2 D3
+66 02 F2 43 26 03 F2 D3 22 03 F2 40 A5 00 41 01
+F2 40 10 00 40 01 D2 43 41 01 F2 40 A5 00 61 01
+B2 40 48 00 62 01 82 43 66 01 39 40 00 01 B2 40
+33 00 64 01 D2 43 61 01 92 D2 9E 01 08 18 38 40
+59 14 18 83 FE 23 19 83 FA 23 F2 D0 10 00 2A 03
+F2 40 A5 00 A1 04 F2 C0 40 00 A2 04 B2 42 B0 01
+39 40 00 10 29 83 89 43 00 1C FC 23 39 40 4C 00
+29 83 B9 40 F6 50 B4 FF FB 23 B2 40 84 43 F0 FF
+B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
+C8 05 92 C3 C0 05 92 D3 DA 05 B2 40 81 A9 40 06
+B2 40 30 00 46 06 D2 D3 25 02 B2 D0 C0 04 0C 02
+92 C3 40 06 3F 40 80 1C 31 40 E0 1C 30 12 46 4F
+9C 3E E2 50 07 43 4F 4D 50 41 52 45 0C 4E 38 4F
+3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83
+07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D
+1E 43 30 4D 58 4A 86 5B 54 48 45 4E 5D 00 30 4D
+16 52 86 5B 45 4C 53 45 5D 00 87 12 76 44 00 00
+C6 40 A4 47 E2 44 86 47 34 40 40 42 8C 52 44 40
+80 44 06 5B 54 48 45 4E 5D 00 EC 51 4A 42 5C 52
+5A 44 D0 40 58 40 4A 42 32 52 2A 40 44 40 80 44
+06 5B 45 4C 53 45 5D 00 EC 51 4A 42 7A 52 5A 44
+D0 40 58 40 4A 42 30 52 2A 40 80 44 04 5B 49 46
+5D 00 EC 51 4A 42 32 52 3C 42 30 52 5A 44 80 44
+05 0D 0A 6B 6F 20 38 44 EE 43 94 47 3C 42 32 52
+22 52 84 5B 49 46 5D 00 0E 93 3E 4F BE 27 30 4D
+A2 52 89 5B 44 45 46 49 4E 45 44 5D 87 12 A4 47
+E2 44 50 45 6A 40 2A 40 B2 52 8B 5B 55 4E 44 45
+46 49 4E 45 44 5D 87 12 A4 47 E2 44 50 45 6A 40
+00 41 2A 40 E6 52 3D 41 B2 4E 0E 18 A2 4E 0C 18
+3E 4F 30 40 74 4E F2 4C 06 4D 41 52 4B 45 52 00
+B0 12 5E 4A BA 40 84 12 FC FF BA 40 E4 52 FE FF
+9A 42 C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D
+30 40 A6 4A 1C 15 B0 12 2A 40 E2 44 50 45 4A 42
+3A 53 0C 46 40 42 74 49 54 53 3C 53 39 4E 39 80
+86 12 08 24 19 53 02 20 2E 4E 04 3C 2E 53 19 53
+01 24 2E 82 1B 17 30 41 32 B0 00 02 01 24 3E 4F
+30 41 3E 40 28 00 B0 12 24 53 B0 12 58 53 19 42
+C6 1D A2 53 C6 1D 89 4E 00 00 3E 40 29 00 1C 15
+12 12 C4 1D 92 53 C4 1D B0 12 2A 40 E2 44 0C 46
+40 42 A0 53 96 53 21 53 3E 90 10 00 81 2D DA 2B
+A2 53 B2 41 C4 1D D6 3F 87 12 A4 47 D6 44 B0 53
+0C 43 1B 42 C6 1D A2 53 C6 1D 6A 4E 3E 4F 7A 90
+23 00 29 20 92 53 C4 1D B0 12 24 53 B0 12 58 53
+3C 40 00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24
+3C 40 20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24
+3C 40 30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24
+3C 40 30 00 19 42 C6 1D A2 53 C6 1D 89 4E 00 00
+3E 4F 3D 41 30 4D 7A 90 26 00 09 20 3C 40 10 02
+92 53 C4 1D B0 12 24 53 B0 12 58 53 EB 3F 7A 90
+40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12 7E 53
+0C 20 3C 50 10 00 3E 40 2B 00 B0 12 7E 53 92 92
+C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E D8 3F
+B0 12 7E 53 FA 23 3C 50 10 00 B0 12 62 53 EF 3F
+0C 43 1B 42 C6 1D A2 53 C6 1D 87 12 A4 47 D6 44
+82 54 FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
+82 00 C6 3F B0 12 7E 53 E1 23 3C 50 80 00 B0 12
+62 53 DC 3F D6 42 04 52 45 54 49 00 87 12 76 44
+00 13 12 47 2A 40 76 44 2C 00 A8 53 7A 54 C0 54
+09 4B 2E 4E 0E DC A2 3F A6 4B 03 4D 4F 56 84 12
+B6 54 00 40 CA 54 05 4D 4F 56 2E 42 84 12 B6 54
+40 40 00 00 03 41 44 44 84 12 B6 54 00 50 E4 54
+05 41 44 44 2E 42 84 12 B6 54 40 50 F0 54 04 41
+44 44 43 00 84 12 B6 54 00 60 FE 54 06 41 44 44
+43 2E 42 00 84 12 B6 54 40 60 A6 54 04 53 55 42
+43 00 84 12 B6 54 00 70 1C 55 06 53 55 42 43 2E
+42 00 84 12 B6 54 40 70 2A 55 03 53 55 42 84 12
+B6 54 00 80 3A 55 05 53 55 42 2E 42 84 12 B6 54
+40 80 88 4B 03 43 4D 50 84 12 B6 54 00 90 54 55
+05 43 4D 50 2E 42 84 12 B6 54 40 90 76 4B 04 44
+41 44 44 00 84 12 B6 54 00 A0 6E 55 06 44 41 44
+44 2E 42 00 84 12 B6 54 40 A0 60 55 03 42 49 54
+84 12 B6 54 00 B0 8C 55 05 42 49 54 2E 42 84 12
+B6 54 40 B0 98 55 03 42 49 43 84 12 B6 54 00 C0
+A6 55 05 42 49 43 2E 42 84 12 B6 54 40 C0 B2 55
+03 42 49 53 84 12 B6 54 00 D0 C0 55 05 42 49 53
+2E 42 84 12 B6 54 40 D0 00 00 03 58 4F 52 84 12
+B6 54 00 E0 DA 55 05 58 4F 52 2E 42 84 12 B6 54
+40 E0 0C 55 03 41 4E 44 84 12 B6 54 00 F0 F4 55
+05 41 4E 44 2E 42 84 12 B6 54 40 F0 A4 47 A8 53
+12 56 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
+4F 3F 46 55 03 52 52 43 84 12 0C 56 00 10 24 56
+05 52 52 43 2E 42 84 12 0C 56 40 10 30 56 04 53
+57 50 42 00 84 12 0C 56 80 10 3E 56 03 52 52 41
+84 12 0C 56 00 11 4C 56 05 52 52 41 2E 42 84 12
+0C 56 40 11 58 56 03 53 58 54 84 12 0C 56 80 11
+00 00 04 50 55 53 48 00 84 12 0C 56 00 12 72 56
+06 50 55 53 48 2E 42 00 84 12 0C 56 40 12 CC 55
+04 43 41 4C 4C 00 84 12 0C 56 80 12 1A 53 0E 4A
+87 12 34 42 80 44 0D 6F 75 74 20 6F 66 20 62 6F
+75 6E 64 73 F2 48 A4 47 D6 44 BC 56 92 53 C4 1D
+3E 40 2C 00 B0 12 2A 40 E2 44 0C 46 40 42 74 49
+70 54 D4 56 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F
+66 56 06 52 52 43 4D 2E 41 00 84 12 B6 56 40 00
+02 57 04 52 52 43 4D 00 84 12 B6 56 50 00 12 57
+06 52 52 41 4D 2E 41 00 84 12 B6 56 40 01 20 57
+04 52 52 41 4D 00 84 12 B6 56 50 01 30 57 06 52
+4C 41 4D 2E 41 00 84 12 B6 56 40 02 3E 57 04 52
+4C 41 4D 00 84 12 B6 56 50 02 4E 57 06 52 52 55
+4D 2E 41 00 84 12 B6 56 40 03 5C 57 04 52 52 55
+4D 00 84 12 B6 56 50 03 80 56 07 50 55 53 48 4D
+2E 41 84 12 B6 56 00 14 7A 57 05 50 55 53 48 4D
+84 12 B6 56 00 15 8A 57 06 50 4F 50 4D 2E 41 00
+84 12 B6 56 00 16 98 57 04 50 4F 50 4D 00 84 12
+B6 56 00 17 6C 57 03 53 3E 3D 85 12 00 38 B6 57
+02 53 3C 00 85 12 00 34 A8 57 03 30 3E 3D 85 12
+00 30 CA 57 02 30 3C 00 85 12 00 30 00 00 02 55
+3C 00 85 12 00 2C DE 57 03 55 3E 3D 85 12 00 28
+D4 57 03 30 3C 3E 85 12 00 24 F2 57 02 30 3D 00
+85 12 00 20 00 00 02 49 46 00 1A 42 C6 1D 8A 4E
+00 00 A2 53 C6 1D 0E 4A 30 4D E8 57 04 54 48 45
+4E 00 1A 42 C6 1D 08 4E 3E 4F 09 48 29 53 0A 89
+0A 11 3A 90 00 02 33 2F 88 DA 00 00 30 4D 7C 55
+04 45 4C 53 45 00 1A 42 C6 1D BA 40 00 3C 00 00
+A2 53 C6 1D 2F 83 8F 4A 00 00 E3 3F 1C 58 05 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83
+0A 89 0A 11 3A 90 00 FE 12 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C6 1D 30 4D 00 56 05 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49
+4C 45 87 12 0A 58 76 40 2A 40 C0 57 06 52 45 50
+45 41 54 00 87 12 92 58 22 58 2A 40 BE 58 3D 41
+08 4E 3E 4F 2A 48 B2 92 C4 1D CD 2F 98 42 C6 1D
+00 00 30 4D 90 56 03 42 57 31 84 12 BC 58 00 00
+D6 58 03 42 57 32 84 12 BC 58 00 00 E2 58 03 42
+57 33 84 12 BC 58 00 00 FA 58 3D 41 1A 42 C6 1D
+28 4E B2 92 C4 1D 90 2B BA 4F 00 00 A2 53 C6 1D
+8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12
+F8 58 00 00 1A 59 03 46 57 32 84 12 F8 58 00 00
+26 59 03 46 57 33 84 12 F8 58 00 00 00 00 05 3F
+47 4F 54 4F 3E 90 00 30 07 24 3E E0 00 04 3E B0
+00 10 02 24 3E E0 00 08 87 12 66 49 3C 47 2A 40
+32 59 04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
+00 3C F2 3F 87 12 A4 47 D6 44 7C 59 69 4E 3E 4F
+3C 4F 2C 4C 1B 42 C6 1D A2 53 C6 1D 79 90 52 00
+0A 20 B0 12 7E 53 5E 0E 5E 0E 0E DC 8B 4E 00 00
+0E 4B 3D 41 30 4D 79 90 23 00 0D 20 3C C0 40 00
+92 53 C4 1D A2 53 C6 1D B0 12 24 53 BB 4F 02 00
+3E F0 0F 00 E8 3F 79 90 26 00 03 20 3C E0 E0 00
+EF 3F 3C C0 F0 00 79 90 40 00 12 20 92 53 C4 1D
+B0 12 7E 53 D8 23 3C D0 10 00 3E 40 2B 00 B0 12
+7E 53 92 92 C0 1D C4 1D CE 27 92 53 C4 1D CB 3F
+3C D0 30 00 A2 53 C6 1D 3E 40 28 00 B0 12 24 53
+BB 4F 02 00 3E 40 29 00 EA 3F 87 12 A4 47 D6 44
+22 5A 3B 4F 2C 4B 69 4E 7E 40 20 00 79 90 52 00
+03 20 B0 12 7E 53 B1 3F 3C C0 F0 00 A2 53 C6 1D
+79 90 26 00 09 20 3C D0 60 00 92 53 C4 1D B0 12
+24 53 BB 4F 02 00 A1 3F 3C D0 70 00 3E 40 28 00
+B0 12 24 53 BB 4F 02 00 3E 40 29 00 E2 3F 76 44
+2C 00 74 59 1A 5A 66 40 2A 40 D6 54 04 4D 4F 56
+41 00 84 12 6E 5A C0 00 EE 58 04 43 4D 50 41 00
+84 12 6E 5A D0 00 8C 58 04 41 44 44 41 00 84 12
+6E 5A E0 00 AC 58 04 53 55 42 41 00 84 12 6E 5A
+F0 00 8A 5A 05 43 41 4C 4C 41 87 12 A4 47 D6 44
+C2 5A 1B 42 C6 1D A2 53 C6 1D 6E 4E 3C 40 34 01
+7E 90 52 00 0B 20 7E 40 20 00 B0 12 7E 53 5C 0E
+0C DE 8B 4C 00 00 3E 4F 3D 41 30 4D 2C 53 7E 90
+40 00 0B 20 92 53 C4 1D 7E 40 20 00 B0 12 7E 53
+EE 23 1C 53 3E 40 2B 00 E8 3F A2 53 C6 1D 7E 90
+23 00 09 20 3C 40 3B 01 92 53 C4 1D B0 12 24 53
+BB 4F 02 00 DC 3F 7E 90 26 00 02 20 2C 53 F4 3F
+7E 40 28 00 1C 83 B0 12 24 53 BB 4F 02 00 3E 40
+29 00 CB 3F 87 12 A4 47 D6 44 4C 5B 69 4E 3E 4F
+3C 40 00 18 79 90 52 00 05 20 B0 12 7E 53 0E 4C
+3D 41 30 4D 82 43 D8 5F 79 90 23 00 0B 20 92 53
+C4 1D B0 12 24 53 2F 53 3E F0 0F 00 5E 0A 5E 0E
+0C DE ED 3F 79 90 26 00 F2 27 79 90 40 00 12 20
+92 53 C4 1D B0 12 7E 53 E2 23 3E 40 2B 00 92 53
+C4 1D B0 12 7E 53 92 92 C0 1D C4 1D D8 27 92 53
+C4 1D D5 3F 3E 40 28 00 B0 12 24 53 8F 4E 00 00
+3E 40 29 00 B0 12 7E 53 3E 4F 3E F0 0F 00 0C DE
+EA 3F 87 12 A4 47 D6 44 DA 5B 3C 4F 69 4E 3E 40
+20 00 79 90 52 00 BB 27 82 43 D8 5F 79 90 26 00
+08 20 92 53 C4 1D B0 12 24 53 2F 53 3E F0 0F 00
+BF 3F 3E 40 28 00 B0 12 24 53 F7 3F 1B 42 C6 1D
+A2 53 C6 1D 0C 4E 3E 4F 1C D2 D8 5F 82 43 D8 5F
+3C DE 8B 4C 00 00 B2 41 C4 1D 30 4D 76 44 C4 1D
+EA 40 86 40 76 44 2C 00 44 5B D2 5B 0C 5C 3C 42
+B6 54 7C 5A 04 4D 4F 56 58 00 84 12 2C 5C 40 00
+00 40 44 5C 06 4D 4F 56 58 2E 41 00 84 12 2C 5C
+00 00 40 40 54 5C 06 4D 4F 56 58 2E 42 00 84 12
+2C 5C 40 00 40 40 98 5A 04 41 44 44 58 00 84 12
+2C 5C 40 00 00 50 78 5C 06 41 44 44 58 2E 41 00
+84 12 2C 5C 00 00 40 50 88 5C 06 41 44 44 58 2E
+42 00 84 12 2C 5C 40 00 40 50 9A 5C 05 41 44 44
+43 58 84 12 2C 5C 40 00 00 60 AC 5C 07 41 44 44
+43 58 2E 41 84 12 2C 5C 00 00 40 60 BC 5C 07 41
+44 44 43 58 2E 42 84 12 2C 5C 40 00 40 60 A6 5A
+05 53 55 42 43 58 84 12 2C 5C 40 00 00 70 E0 5C
+07 53 55 42 43 58 2E 41 84 12 2C 5C 00 00 40 70
+F0 5C 07 53 55 42 43 58 2E 42 84 12 2C 5C 40 00
+40 70 02 5D 04 53 55 42 58 00 84 12 2C 5C 40 00
+00 80 14 5D 06 53 55 42 58 2E 41 00 84 12 2C 5C
+00 00 40 80 24 5D 06 53 55 42 58 2E 42 00 84 12
+2C 5C 40 00 40 80 B4 5A 04 43 4D 50 58 00 84 12
+2C 5C 40 00 00 90 48 5D 06 43 4D 50 58 2E 41 00
+84 12 2C 5C 00 00 40 90 58 5D 06 43 4D 50 58 2E
+42 00 84 12 2C 5C 40 00 40 90 40 58 05 44 41 44
+44 58 84 12 2C 5C 40 00 00 A0 7C 5D 07 44 41 44
+44 58 2E 41 84 12 2C 5C 00 00 40 A0 8C 5D 07 44
+41 44 44 58 2E 42 84 12 2C 5C 40 00 40 A0 6A 5D
+04 42 49 54 58 00 84 12 2C 5C 40 00 00 B0 B0 5D
+06 42 49 54 58 2E 41 00 84 12 2C 5C 00 00 40 B0
+C0 5D 06 42 49 54 58 2E 42 00 84 12 2C 5C 40 00
+40 B0 D2 5D 04 42 49 43 58 00 84 12 2C 5C 40 00
+00 C0 E4 5D 06 42 49 43 58 2E 41 00 84 12 2C 5C
+00 00 40 C0 F4 5D 06 42 49 43 58 2E 42 00 84 12
+2C 5C 40 00 40 C0 06 5E 04 42 49 53 58 00 84 12
+2C 5C 40 00 00 D0 18 5E 06 42 49 53 58 2E 41 00
+84 12 2C 5C 00 00 40 D0 28 5E 06 42 49 53 58 2E
+42 00 84 12 2C 5C 40 00 40 D0 E6 55 04 58 4F 52
+58 00 84 12 2C 5C 40 00 00 E0 4C 5E 06 58 4F 52
+58 2E 41 00 84 12 2C 5C 00 00 40 E0 5C 5E 06 58
+4F 52 58 2E 42 00 84 12 2C 5C 40 00 40 E0 CE 5C
+04 41 4E 44 58 00 84 12 2C 5C 40 00 00 F0 80 5E
+06 41 4E 44 58 2E 41 00 84 12 2C 5C 00 00 40 F0
+90 5E 06 41 4E 44 58 2E 42 00 84 12 2C 5C 40 00
+40 F0 76 44 C4 1D EA 40 86 40 A4 47 44 5B 0C 5C
+3C 42 0C 56 36 5D 04 52 52 43 58 00 84 12 B2 5E
+40 00 00 10 C6 5E 06 52 52 43 58 2E 41 00 84 12
+B2 5E 00 00 40 10 D6 5E 06 52 52 43 58 2E 42 00
+84 12 B2 5E 40 00 40 10 E8 5E 04 52 52 55 58 00
+84 12 B2 5E 40 01 00 10 FA 5E 06 52 52 55 58 2E
+41 00 84 12 B2 5E 00 01 40 10 0A 5F 06 52 52 55
+58 2E 42 00 84 12 B2 5E 40 01 40 10 1C 5F 05 53
+57 50 42 58 84 12 B2 5E 40 00 80 10 2E 5F 07 53
+57 50 42 58 2E 41 84 12 B2 5E 00 00 80 10 3E 5F
+04 52 52 41 58 00 84 12 B2 5E 40 00 00 11 50 5F
+06 52 52 41 58 2E 41 00 84 12 B2 5E 00 00 40 11
+60 5F 06 52 52 41 58 2E 42 00 84 12 B2 5E 40 00
+40 11 72 5F 04 53 58 54 58 00 84 12 B2 5E 40 00
+80 11 84 5F 06 53 58 54 58 2E 41 00 84 12 B2 5E
+00 00 80 11 FC 57 05 50 55 53 48 58 84 12 B2 5E
+40 00 00 12 A6 5F 07 50 55 53 48 58 2E 41 84 12
+B2 5E 00 00 40 12 B6 5F 07 50 55 53 48 58 2E 42
+84 12 B2 5E 40 00 40 12 00 00 94 5F 03 52 50 54
+87 12 A4 47 D6 44 E8 5F 29 4E 7E 40 20 00 79 90
+52 00 06 20 B0 12 7E 53 03 24 3E D0 80 00 05 3C
+B0 12 24 53 1E 83 3E F0 0F 00 82 4E D8 5F 3E 4F
+3D 41 30 4D 1A 43 25 3C D2 C3 23 02 E2 B2 60 02
+02 24 30 40 E8 50 1A 52 04 20 19 62 06 20 92 43
+14 20 A2 93 02 20 07 24 0A 5A 49 69 82 4A 16 20
+C2 49 18 20 0A 3C C2 4A 15 20 8A 10 C2 4A 16 20
+C2 49 17 20 89 10 C2 49 18 20 B0 12 9C 60 5A 53
+FC 23 39 40 05 00 D2 49 14 20 4E 06 82 93 46 06
+05 24 92 B3 6C 06 FD 27 C2 93 4C 06 59 83 F3 2F
+19 83 0B 30 F2 43 4E 06 82 93 46 06 03 24 92 B3
+6C 06 FD 27 5A 92 4C 06 F3 23 30 41 19 43 3A 43
+8A 10 C2 4A 4E 06 82 93 46 06 05 24 92 B3 6C 06
+FD 27 C2 93 4C 06 19 83 F3 23 5A 42 4C 06 30 41
+1A 52 08 20 09 43 1C D3 F2 40 51 00 19 20 B0 12
+18 60 33 20 B0 12 9C 60 6A 53 04 24 FB 23 D9 42
+4C 06 FF 1D F2 43 4E 06 03 43 19 53 39 90 01 02
+F6 23 F2 43 4E 06 3C C0 03 00 D2 D3 23 02 30 41
+09 43 2C D3 F0 40 58 00 11 BF B0 12 18 60 15 20
+3A 40 FE FF 29 43 B0 12 A0 60 D2 49 00 1E 4E 06
+03 43 19 53 39 90 00 02 F8 23 39 40 03 00 B0 12
+9E 60 7A C0 E1 00 6A 92 DE 27 8C 10 1C 52 4C 06
+D2 D3 23 02 87 12 80 44 0B 3C 20 53 44 20 45 72
+72 6F 72 21 56 61 2F 83 8F 4E 00 00 B2 40 10 00
+DC 1D 0E 4C B0 12 2A 40 24 42 F2 48 92 4B 0E 00
+22 20 92 4B 10 00 24 20 5A 42 23 20 58 42 22 20
+92 93 02 20 08 24 59 42 24 20 89 10 0A 59 88 10
+08 58 0A 6A 88 10 08 58 30 41 82 43 1C 20 92 42
+0E 20 1A 20 C2 93 24 20 03 20 92 93 22 20 14 24
+92 42 22 20 D0 04 92 42 24 20 D2 04 92 42 12 20
+C8 04 92 42 E4 04 1A 20 92 42 E6 04 1C 20 92 52
+10 20 1A 20 82 63 1C 20 30 41 92 4B 0E 00 22 20
+92 4B 10 00 24 20 B0 12 9A 61 5A 4B 03 00 82 5A
+1A 20 82 63 1C 20 30 41 09 93 07 24 F8 90 20 00
+00 1E 03 20 18 53 19 83 F9 23 30 41 1B 42 32 20
+82 43 1E 20 B2 90 00 02 20 20 A8 20 BB 80 00 02
+12 00 8B 73 14 00 DB 53 03 00 DB 92 12 20 03 00
+11 28 CB 43 03 00 B0 12 6C 61 B0 12 C0 60 8B 43
+10 00 9B 48 00 1E 0E 00 92 93 02 20 03 24 9B 48
+02 1E 10 00 B2 40 00 02 20 20 8B 93 14 00 0B 20
+92 9B 12 00 1E 20 82 2C BB 90 00 02 12 00 03 2C
+92 4B 12 00 20 20 B0 12 DA 61 1A 42 1A 20 19 42
+1C 20 21 3F 3C 42 3B 40 38 20 09 43 CB 93 02 00
+10 24 9B 92 24 20 0C 00 04 20 9B 92 22 20 0A 00
+07 24 09 4B 3B 50 1C 00 3B 90 18 21 EF 23 0C 5C
+30 41 0C 43 82 4B 32 20 8B 49 00 00 09 93 0A 24
+99 52 C4 1D 16 00 4A 93 05 34 C9 93 02 00 02 34
+5A 59 02 00 CB 4A 02 00 CB 43 03 00 9B 42 1A 20
+04 00 9B 42 1C 20 06 00 18 42 30 20 8B 48 08 00
+9B 48 1A 1E 0A 00 9B 48 14 1E 0C 00 9B 48 1A 1E
+0E 00 9B 48 14 1E 10 00 9B 48 1C 1E 12 00 9B 48
+1E 1E 14 00 82 43 1E 20 6A 93 5F 27 C9 37 8B 43
+16 00 7A 93 02 24 07 38 95 3F B2 40 1C 21 EC 43
+B2 40 EA 42 50 43 9B 42 C0 1D 18 00 9B 82 C4 1D
+18 00 9B 42 C2 1D 1A 00 9B 52 C4 1D 1A 00 82 3F
+CB 43 02 00 2B 4B 82 4B 32 20 0B 93 06 24 92 4B
+16 00 1E 20 B0 12 54 62 22 C3 30 41 1B 42 32 20
+0B 93 FB 27 EB 93 02 00 04 20 B0 12 C2 67 B0 12
+8A 67 CB 93 02 00 E4 37 1E 4B 18 00 9F 4B 1A 00
+00 00 31 50 06 00 3D 41 B0 12 50 63 02 24 30 40
+24 44 B2 40 3C 1D EC 43 B2 40 52 43 50 43 30 40
+0E 44 9E 4E 85 52 45 41 44 22 5A 43 19 3C 40 4F
+86 57 52 49 54 45 22 00 6A 43 12 3C 06 4E 84 44
+45 4C 22 00 6A 42 0C 3C E4 51 05 43 4C 4F 53 45
+B0 12 6C 63 30 4D F8 52 85 4C 4F 41 44 22 7A 43
+2F 83 8F 4E 00 00 0E 4A 82 93 BE 1D 0A 24 87 12
+76 44 76 44 12 47 12 47 9A 44 76 44 20 64 12 47
+2A 40 87 12 76 44 22 00 E2 44 86 47 1E 64 3D 41
+35 4F 0E 55 82 4E 36 20 1C 43 92 42 2C 20 22 20
+92 42 2E 20 24 20 0E 95 8D 24 F5 90 3A 00 01 00
+01 20 25 53 F5 90 5C 00 00 00 08 20 15 53 92 42
+02 20 22 20 82 43 24 20 0E 95 70 24 82 45 34 20
+B0 12 9A 61 34 40 20 00 A2 93 02 20 04 24 92 92
+22 20 02 20 02 24 14 42 12 20 B0 12 7A 62 2C 43
+0A 43 08 4A 58 0E 08 58 82 48 30 20 C8 93 00 1E
+61 24 39 42 F8 95 00 1E 04 20 18 53 19 83 FA 23
+15 53 F5 90 2E 00 FF FF 19 24 39 50 03 00 B0 12
+F8 61 06 20 F5 90 5C 00 FF FF 29 24 0E 95 27 28
+15 42 34 20 1A 53 3A 90 10 00 DB 23 92 53 1A 20
+82 63 1C 20 14 83 D1 23 2C 42 3C 3C F5 90 2E 00
+FE FF EE 27 B0 12 F8 61 EB 23 39 40 03 00 F8 95
+00 1E 04 20 18 53 19 83 FA 23 09 3C 0E 95 E0 2F
+F5 90 5C 00 FF FF DC 23 B0 12 F8 61 D9 23 18 42
+30 20 92 48 1A 1E 22 20 92 48 14 1E 24 20 F8 B0
+10 00 0B 1E 14 24 82 93 24 20 06 20 82 93 22 20
+03 20 92 42 02 20 22 20 0E 95 8E 2F 92 42 22 20
+2C 20 92 42 24 20 2E 20 8F 43 00 00 03 3C 2A 4F
+B0 12 84 62 34 40 00 40 35 40 0E 40 3A 4F 3E 4F
+0A 93 04 24 7A 93 0D 20 0C 93 01 20 30 4D 87 12
+80 44 0B 3C 20 4F 70 65 6E 45 72 72 6F 72 3C 42
+54 61 1A 93 B6 20 0C 93 F2 23 30 4D B4 63 04 52
+45 41 44 00 2F 83 8F 4E 00 00 1E 42 32 20 B0 12
+0C 62 1E 82 32 20 30 4D 2C 43 12 12 2A 20 18 42
+02 20 08 58 2A 41 82 9A 0A 20 A1 24 B0 12 C0 60
+09 43 28 93 03 24 89 93 02 1E 03 20 89 93 00 1E
+07 24 09 58 39 90 00 02 F4 23 91 53 00 00 EA 3F
+0C 43 6A 41 B9 43 00 1E 28 93 0F 24 B9 40 FF 0F
+02 1E 09 11 8A 10 09 5A 5A 41 01 00 0A 11 09 10
+82 4A 28 20 82 49 26 20 07 3C 09 11 C2 49 26 20
+C2 4A 27 20 82 43 28 20 3A 41 82 4A 2A 20 30 41
+0A 12 1A 52 08 20 B0 12 00 61 3A 41 1A 52 0C 20
+30 40 00 61 F2 B0 40 00 A2 04 29 20 F2 B0 10 00
+A2 04 FC 27 5A 42 B0 04 4A 11 59 42 B4 04 F2 40
+20 00 C0 04 D2 42 B1 04 C8 04 1A 52 E4 04 D2 42
+B5 04 C8 04 19 52 E4 04 D2 42 B2 04 C0 04 B2 40
+00 08 C8 04 1A 52 E4 04 92 42 B6 04 C0 04 B2 80
+BC 07 C0 04 B2 40 00 02 C8 04 19 52 E4 04 30 41
+22 2A 2B 2C 2F 3A 3B 3C 3D 3E 3F 5B 5C 5D 7C 2E
+29 92 06 38 39 80 03 00 B0 12 E0 66 39 40 03 00
+7A 4B C8 4A 00 1E 82 9B 36 20 12 28 0D 12 3D 40
+0F 00 3C 40 90 66 7A 9C F3 27 1D 83 FC 23 3D 41
+6A 9C E6 27 3A 80 21 00 EB 3B 18 53 19 83 E8 23
+09 93 06 24 F8 40 20 00 00 1E 18 53 19 83 FA 23
+30 41 2A 93 D8 20 2C 93 0D 24 0C 93 A7 24 87 12
+80 44 0C 3C 20 57 72 69 74 65 45 72 72 6F 72 00
+3C 42 54 61 B0 12 A8 65 92 42 26 20 22 20 92 42
+28 20 24 20 B0 12 20 66 B0 12 7A 62 18 42 30 20
+F8 40 20 00 0B 1E B0 12 34 66 88 43 0C 1E 88 4A
+0E 1E 88 49 10 1E 88 49 12 1E 98 42 24 20 14 1E
+98 42 22 20 1A 1E 88 43 1C 1E 88 43 1E 1E 1C 43
+1B 42 34 20 82 9B 36 20 CA 27 FB 90 2E 00 00 00
+C6 27 39 40 0B 00 B0 12 B0 66 B0 12 CC 67 2A 43
+B0 12 84 62 0C 93 BB 23 30 4D 1A 4B 04 00 19 4B
+06 00 B0 12 C6 60 B0 12 34 66 18 4B 08 00 88 49
+12 1E 88 4A 16 1E 88 49 18 1E 98 4B 12 00 1C 1E
+98 4B 14 00 1E 1E 1A 4B 04 00 19 4B 06 00 30 40
+02 61 9B 52 1E 20 12 00 8B 63 14 00 1A 42 1A 20
+19 42 1C 20 30 40 02 61 B2 40 00 02 1E 20 1B 42
+32 20 B0 12 C2 67 82 43 1E 20 DB 53 03 00 DB 92
+12 20 03 00 22 20 CB 43 03 00 B0 12 6C 61 08 12
+0A 12 B0 12 A8 65 2A 91 05 24 B0 12 20 66 2A 41
+B0 12 C0 60 3A 41 38 41 98 42 26 20 00 1E 92 93
+02 20 03 24 98 42 28 20 02 1E B0 12 20 66 9B 42
+26 20 0E 00 9B 42 28 20 10 00 30 40 DA 61 C0 63
+05 57 52 49 54 45 B0 12 D8 67 30 4D 58 4B 13 00
+59 4B 14 00 89 10 09 58 58 4B 15 00 5B 42 12 20
+0A 43 3C 42 08 11 09 10 4A 10 1C 83 0B 11 FA 2B
+0A 11 1C 83 FD 37 1B 42 32 20 19 5B 0A 00 18 6B
+0C 00 8B 49 0E 00 8B 48 10 00 CB 4A 03 00 1A 4B
+12 00 BB C0 FF 01 12 00 3A F0 FF 01 82 4A 1E 20
+B0 12 76 62 30 4D 0C 93 38 20 38 90 E0 01 03 2C
+C8 93 20 1E 02 24 7C 40 E5 00 C8 4C 00 1E B0 12
+CC 67 B0 12 78 61 82 4A 2A 20 0B 4A B0 12 C0 60
+1A 48 00 1E 88 43 00 1E 92 93 02 20 09 24 19 48
+02 1E 88 43 02 1E 39 F0 FF 0F 39 90 FF 0F 02 20
+3A 93 0E 24 82 4A 22 20 82 49 24 20 B0 12 78 61
+0B 9A E6 27 0A 12 0A 4B B0 12 20 66 3A 41 DD 3F
+0A 4B B0 12 20 66 B0 12 6C 63 30 4D 38 4C 08 54
+45 52 4D 32 53 44 22 00 87 12 D4 63 76 44 02 00
+02 47 86 47 20 64 38 69 3D 41 92 C3 DC 05 08 43
+B0 12 B6 42 92 B3 DC 05 FD 27 59 42 CC 05 69 92
+0D 24 C8 49 00 1E 18 53 38 90 FF 01 F3 2B 03 24
+B0 12 D8 67 EC 3F B0 12 C8 42 EC 3F B0 12 C8 42
+82 48 1E 20 B0 12 6C 63 30 4D
+@FFFE
+F6 50
+q
index f1caca3..5dc8192 100644 (file)
 @1800
-10 00 08 00 A1 F7 80 3E 05 00 18 00 EE 6B 46 4F
-2C 01 FF B3 5A 44 6C 44 0C 63 48 63
+10 00 08 00 A1 F7 80 3E 05 00 18 00 7A 69 C4 4D
+2D 01 FF B3 B6 42 C8 42 C6 60 02 61
 @4000
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 40
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 40 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 40 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 40 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 40 02 3E 52 00
-0E 12 3E 4F 30 4D 96 40 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 40 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 40 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 40 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 41 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 40 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 41 02 31 2D 00
-1E 83 30 4D D8 40 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 41
-02 30 3D 00 1E 83 0E 7E 30 4D 60 41 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 41 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 40 01 3E 3E 8F F4 3B EB 37 0E 41 02 42 4C 00
-85 12 20 00 AC 41 04 42 41 53 45 00 85 12 DC 1D
-C8 40 05 53 54 41 54 45 85 12 BE 1D 96 41 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 41 06 55 4D 2F
-4D 4F 44 00 30 12 62 40 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 40 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 41
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 41 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 42
-02 23 53 00 87 12 32 42 6A 42 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 42 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 41 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 41
-02 44 2E 00 87 12 D2 41 44 40 B0 40 4C 41 64 42
-BC 40 A2 42 7E 42 7C 45 44 45 2A 40 DC 41 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 40
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 42 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 40
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A 42
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 42 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 42 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 41 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 43 03 4B 45 59 30 40 A0 43
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 5A 44 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 6C 44 30 4D 0D 12
-3D 40 DE 43 1B 42 32 20 9B 42 1E 20 16 00 3A 4F
-09 4E 0E 43 1C 42 1E 20 1B 42 20 20 02 3C E0 43
-2D 83 0C 9B 14 2C 58 4C 00 1E 1C 53 78 90 20 00
-07 2C 78 90 0A 00 F5 23 82 4C 1E 20 3D 41 30 4D
-0E 99 56 24 CA 48 00 00 1A 53 1E 53 51 3C 1A 15
-B0 12 50 64 19 17 DE 3F 00 43 06 41 43 43 45 50
-54 00 30 40 26 44 3C 40 C8 44 3B 40 92 44 2D 15
-0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40
-BC 44 92 B3 DC 05 05 24 18 42 CC 05 38 90 0A 00
-04 20 21 53 39 40 80 44 4D 15 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C2 23 02 30 41 B2 40 13 00
-CE 05 E2 D2 23 02 30 41 00 00 05 53 4C 45 45 50
-30 40 84 44 12 D2 0A 18 FB 3F 21 52 3A 17 58 42
-CC 05 48 9C 08 2C 48 9B E9 27 78 92 11 20 2E 9F
-0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00 1E 53
-A2 B3 DC 05 FD 27 82 48 CE 05 30 4D BE 44 2D 83
-92 B3 DC 05 E4 23 FC 27 82 93 DE 1D 02 24 92 53
-DE 1D 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D B0 42
-04 45 4D 49 54 00 30 40 EA 44 08 4E 3E 4F E0 3F
-10 43 03 43 49 42 85 12 3C 1D 3F 80 06 00 8F 4E
-04 00 3E 40 54 00 9F 42 F8 44 00 00 AF 4F 02 00
-88 3F E0 44 04 45 43 48 4F 00 B2 40 82 48 B6 44
-82 43 DE 1D 30 4D E0 42 06 4E 4F 45 43 48 4F 00
-B2 40 30 4D B6 44 92 43 DE 1D 30 4D 9C 42 05 53
-50 41 43 45 2F 83 8F 4E 00 00 3E 40 20 00 CB 3F
-3E 45 06 53 50 41 43 45 53 00 0E 93 09 24 0D 12
-3D 40 66 45 EF 3F 68 45 2D 83 1E 83 EB 23 3D 41
-3E 4F 30 4D 66 43 04 54 59 50 45 00 0E 93 0F 24
-1E 15 3D 40 92 45 28 4F 7E 48 8F 48 00 00 2F 83
-AA 3F 94 45 2D 83 91 83 02 00 F5 23 1D 17 2F 53
-3E 4F 30 4D F2 44 02 43 52 00 30 40 AE 45 87 12
-BA 45 02 0D 0A 00 7C 45 2A 40 2F 82 8F 4E 02 00
-7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63 30 4D 52 45
-82 53 22 00 82 43 B4 1D 87 12 34 40 BA 45 30 48
-34 40 22 00 1E 46 E8 45 3D 41 B2 40 20 00 B4 1D
-6E 4E 1E 83 82 5E C6 1D 3E 4F 92 B3 C6 1D A2 63
-C6 1D 30 4D 28 45 82 2E 22 00 87 12 D4 45 34 40
-7C 45 30 48 2A 40 00 00 04 57 4F 52 44 00 3C 40
-C0 1D 39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 19 24
-7E 9A FC 27 1A 83 3B 40 60 00 C8 4C 00 00 09 9A
-0C 24 7C 4A 4E 9C 09 24 18 53 4B 9C F6 2F 7C 90
-7B 00 F3 2F 5C 82 B4 1D F0 3F 1A 82 C2 1D 82 4A
-C4 1D 1E 42 C6 1D 08 8E CE 48 00 00 30 4D 00 00
-04 46 49 4E 44 00 2F 83 0C 4E 65 4C 74 40 80 00
-3B 40 CA 1D 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
-1E 00 0E 58 2E 53 1E 4E FE FF 0E 93 F3 27 09 4E
-78 49 48 C4 48 95 F7 23 0A 4C FA 99 01 00 F3 23
-1A 53 58 83 FA 23 19 B3 09 63 0C 49 6A 4E 1E 43
-4A 93 01 30 2E 83 8F 4C 00 00 35 40 0E 40 34 40
-00 40 30 4D A2 41 07 3E 4E 55 4D 42 45 52 3C 4F
-38 4F 29 4F 2F 82 1B 42 DC 1D 6A 4C 7A 80 30 00
-7A 90 0A 00 05 28 7A 80 07 00 7A 90 0A 00 12 28
-0A 9B 22 C3 0F 2C 82 49 D0 04 82 48 D2 04 82 4B
-C8 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
-1E 83 E3 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
-30 4D 1B 42 DC 1D 0C 43 2D 15 3D 40 78 47 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90
-2D 00 04 28 CB 23 B1 43 02 00 E1 3F 2B 43 7A 80
-25 00 07 24 3B 52 6A 53 04 24 3B 40 10 00 5A 83
-BC 23 1C 53 1E 83 EA 3F 7A 47 2F 24 2D 83 7A 90
-28 00 CD 27 32 D0 00 02 7A 90 F7 00 C8 27 7A 90
-F5 00 23 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
-09 5C 69 49 79 80 30 00 79 90 0A 00 05 28 79 80
-07 00 79 90 0A 00 0A 28 09 9B 08 2C 8F 49 00 00
-0E 4B 2C 15 B0 12 E8 41 2A 17 E6 3F 9F 4F 04 00
-02 00 AF 4F 04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B
-DC 1D 06 24 32 C0 00 02 3F 50 06 00 0E F3 30 4D
-2F 53 9F 4F 02 00 04 00 BF 4F 00 00 3E E3 09 20
-3E E3 BF E3 02 00 BF E3 00 00 9F 53 02 00 8F 63
-00 00 32 B0 00 02 01 20 2F 53 30 4D 14 45 07 45
-58 45 43 55 54 45 0A 4E 3E 4F 00 4A 26 41 01 2C
-1A 42 C6 1D A2 53 C6 1D 8A 4E 00 00 3E 4F 30 4D
-2E 48 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
-1A 42 C6 1D A2 52 C6 1D BA 40 34 40 00 00 8A 4E
-02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
-02 00 8A 4E 02 00 0E 49 EB 3F 30 4D A6 45 05 43
-4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
-30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
-30 4D 87 12 92 48 B0 41 1E 46 AC 48 3D 40 B4 48
-E2 22 5D 3E B6 48 0A 4E 3E 4F 3D 40 CC 48 39 27
-3D 40 A6 48 1A E2 BE 1D B3 27 AD 23 CE 48 3E 4F
-3D 40 A6 48 BA 23 DE 53 00 00 68 4E 08 5E F8 40
-3F 00 00 00 3D 40 EC 4B CD 3F 1E 48 08 45 56 41
-4C 55 41 54 45 00 39 40 C0 1D 3C 49 3B 49 3A 49
-3D 15 B0 12 2A 40 A2 48 0A 49 B2 41 C4 1D B2 41
-C2 1D B2 41 C0 1D 3D 41 30 4D 82 43 08 18 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 30 4D 7E 48
-04 42 4F 4F 54 00 82 93 08 18 1D 24 E2 B2 60 02
-1A 20 2F 83 8F 4E 00 00 1E 42 08 18 B0 12 2A 40
-30 45 1A 49 BA 45 0F 4C 4F 41 44 22 20 42 4F 4F
-54 2E 34 54 48 22 24 43 82 49 6C 41 04 51 55 49
-54 00 30 40 76 49 B0 12 2A 40 1A 49 AA 45 FA 44
-44 45 A2 48 DE 40 70 41 BA 45 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 DA 49 34 40 30 FF F2 42
-8A 41 BA 45 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-DA 49 24 43 7C 49 1A 44 05 41 42 4F 52 54 3F 40
-80 1C D7 3F B8 49 86 41 42 4F 52 54 22 00 87 12
-D4 45 34 40 DA 49 30 48 2A 40 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 B2 51 1B 42 32 20 0B 93
-04 24 CB 43 02 00 2B 4B FA 3F B0 12 5A 44 92 C3
-DC 05 38 40 A0 AA 39 42 09 59 03 43 19 83 FD 23
-18 83 F9 23 92 B3 DC 05 F2 23 87 12 26 51 34 40
-DE 1D F2 40 1A 45 BA 45 04 1B 5B 37 6D 00 7C 45
-54 40 28 43 46 4A AA 45 BA 45 05 6C 69 6E 65 3A
-7C 45 40 41 D2 42 7C 45 BA 45 04 1B 5B 30 6D 00
-7C 45 BE 49 00 00 83 5B 27 5D 87 12 6C 4A 34 40
-34 40 30 48 30 48 2A 40 70 46 01 27 87 12 B0 41
-1E 46 76 46 28 43 7A 4A 2A 40 D6 48 CE 41 81 5C
-92 42 C0 1D C4 1D 30 4D 56 4A 81 5B 82 43 BE 1D
-30 4D 7E 4A 01 5D B2 43 BE 1D 30 4D BE 4F 02 00
-3E 4F 30 4D 72 43 82 49 53 00 87 12 C8 41 F2 40
-28 43 BE 4A 5A 4A 34 40 9C 4A 30 48 2A 40 6C 4A
-9C 4A 2A 40 A6 4A 09 49 4D 4D 45 44 49 41 54 45
-1A 42 B6 1D FA D0 80 00 00 00 30 4D D0 45 87 52
-45 43 55 52 53 45 19 42 C6 1D 99 42 BA 1D 00 00
-A2 53 C6 1D 30 4D 6C 49 88 50 4F 53 54 50 4F 4E
-45 00 87 12 B0 41 1E 46 76 46 54 40 28 43 7A 4A
-70 41 28 43 22 4B 34 40 34 40 30 48 30 48 34 40
-30 48 30 48 2A 40 8A 4A 81 3B 82 93 BE 1D A8 27
-87 12 34 40 2A 40 30 48 C0 4B 8C 4A 2A 40 28 4B
-07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E 00 00 1E 42
-C6 1D 0A 4E 39 40 00 02 38 40 02 02 B0 12 AC 4B
-BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 82 4F
-BC 1D 30 4D 40 4B 01 3A 30 12 60 4B 87 12 FA 45
-B0 41 1E 46 86 4B 3D 41 08 4E 7A 4E 5A D3 5A 53
-0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E 3E 4F
-BA 40 30 40 00 00 BA 40 72 4B 02 00 82 48 B6 1D
-82 49 B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D 30 41
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 40
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 40
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 40
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 40 02 3E 52 00 0E 12 3E 4F 30 4D 70 40 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 40 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 40 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 40
+01 21 BE 4F 00 00 3E 4F 30 4D CC 40 02 30 3D 00
+1E 83 0E 7E 30 4D FC 40 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 41 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 40 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 41 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 41 02 23 53 00 87 12 88 41 C0 41
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 41
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 40 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 41 34 40 86 40 D4 40 BA 41
+92 40 F8 41 D4 41 38 44 A4 47 E0 43 2A 40 22 41
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 41 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 42 18 42 CC 05 2F 83 8F 4E
+00 00 B0 12 B6 42 92 B3 DC 05 FD 27 1E 42 CC 05
+B0 12 C8 42 30 4D A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C2 23 02 30 41 B2 40 13 00 CE 05 E2 D2
+23 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 42
+B0 12 B6 42 12 D2 0A 18 F9 3F 0D 12 3D 40 0A 43
+1B 42 32 20 9B 42 1E 20 16 00 3A 4F 09 4E 0E 43
+1C 42 1E 20 1B 42 20 20 02 3C 0C 43 2D 83 0C 9B
+14 2C 58 4C 00 1E 1C 53 78 90 20 00 07 2C 78 90
+0A 00 F5 23 82 4C 1E 20 3D 41 30 4D 0E 99 3D 24
+CA 48 00 00 1A 53 1E 53 38 3C 1A 15 B0 12 0C 62
+19 17 DE 3F F0 40 06 41 43 43 45 50 54 00 30 40
+52 43 3C 40 C2 43 3B 40 8C 43 2D 15 0A 4E 2E 4F
+0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 B6 43 92 B3
+DC 05 05 24 18 42 CC 05 38 90 0A 00 9C 23 21 53
+3D 15 AC 3F 21 52 3A 17 58 42 CC 05 48 9C 08 2C
+48 9B 9A 27 78 92 11 20 2E 9F 0F 24 1E 83 05 3C
+0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 DC 05 FD 27
+82 48 CE 05 30 4D B8 43 2D 83 92 B3 DC 05 E4 23
+FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F 3D 41
+B2 40 18 00 0A 18 30 4D 9E 40 04 45 4D 49 54 00
+30 40 E4 43 08 4E 3E 4F E0 3F 85 12 3C 1D 3F 80
+06 00 8F 4E 04 00 3E 40 54 00 9F 42 EC 43 00 00
+AF 4F 02 00 A4 3F DA 43 04 45 43 48 4F 00 B2 40
+82 48 B0 43 82 43 DE 1D 30 4D 32 42 06 4E 4F 45
+43 48 4F 00 B2 40 30 4D B0 43 92 43 DE 1D 30 4D
+20 42 04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40
+4E 44 28 4F 7E 48 8F 48 00 00 2F 83 C9 3F 50 44
+2D 83 91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D
+D0 41 02 43 52 00 30 40 6A 44 87 12 80 44 02 0D
+0A 00 38 44 2A 40 2F 83 8F 4E 00 00 3E 4D 30 4D
+2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
+0D 63 30 4D F2 41 82 53 22 00 82 43 B4 1D 87 12
+76 44 80 44 12 47 76 44 22 00 E2 44 AE 44 B2 40
+20 00 B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41
+3E 4F 30 4D 1C 44 82 2E 22 00 87 12 9A 44 76 44
+38 44 12 47 2A 40 48 43 05 3C 00 00 04 57 4F 52
+44 00 48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52
+C4 1D 09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20
+0E 4A 1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D
+3B 40 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C
+09 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82
+B4 1D F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D
+08 8E CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00
+2F 83 0C 4E 65 4C 74 40 80 00 3B 40 CA 1D 3E 4B
+0E 93 1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53
+1E 4E FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95
+F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23
+19 B3 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83
+8F 4C 00 00 35 40 0E 40 34 40 00 40 30 4D 82 40
+07 3E 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82
+1B 42 DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28
+7A 80 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C
+82 49 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04
+18 42 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C
+00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02
+1B 42 DC 1D 0C 43 2D 15 3D 40 56 46 09 43 08 43
+3F 82 8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00
+04 28 C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00
+07 24 3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23
+1C 53 1E 83 EA 3F 58 46 2F 24 2D 83 7A 90 28 00
+CB 27 32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00
+23 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C
+69 49 79 80 30 00 79 90 0A 00 05 28 79 80 07 00
+79 90 0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E 41 2A 17 E6 3F 9F 4F 04 00 02 00
+AF 4F 04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D
+06 24 32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53
+9F 4F 02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3
+BF E3 02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00
+32 B0 00 02 01 20 2F 53 30 4D 7E 42 04 48 45 52
+45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 40
+01 2C 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F
+30 4D 46 43 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F
+30 4D 08 44 07 45 58 45 43 55 54 45 0A 4E 3E 4F
+00 4A 10 47 87 4C 49 54 45 52 41 4C 82 93 BE 1D
+0C 24 1A 42 C6 1D A2 52 C6 1D BA 40 76 44 00 00
+8A 4E 02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24
+19 4A 02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 62 44
+05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E
+FF FF 30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43
+C4 1D 30 4D 85 12 20 00 87 12 94 47 A4 47 E2 44
+B2 47 3D 40 BA 47 CC 22 82 3E BC 47 0A 4E 3E 4F
+3D 40 D2 47 23 27 3D 40 AC 47 1A E2 BE 1D A1 27
+B5 23 D4 47 3E 4F 3D 40 AC 47 B8 23 DE 53 00 00
+68 4E 08 5E F8 40 3F 00 00 00 3D 40 CC 4A CB 3F
+34 47 08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D
+3C 49 3B 49 3A 49 3D 15 B0 12 2A 40 A8 47 10 48
+B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D
+85 12 BE 1D 82 43 08 18 31 40 E0 1C B2 40 00 1C
+00 1C 82 43 BE 1D 30 4D 80 47 04 42 4F 4F 54 00
+82 93 08 18 1D 24 E2 B2 60 02 1A 20 2F 83 8F 4E
+00 00 1E 42 08 18 B0 12 2A 40 24 44 24 48 80 44
+0F 4C 4F 41 44 22 20 42 4F 4F 54 2E 34 54 48 22
+3C 42 8E 48 08 41 04 51 55 49 54 00 30 40 80 48
+B0 12 2A 40 24 48 66 44 EE 43 A4 47 E0 43 A8 47
+A4 40 0C 41 80 44 0C 73 74 61 63 6B 20 65 6D 70
+74 79 21 00 E6 48 76 44 30 FF 02 47 26 41 80 44
+0A 46 52 41 4D 20 66 75 6C 6C 21 00 E6 48 3C 42
+86 48 24 47 05 41 42 4F 52 54 3F 40 80 1C D6 3F
+C4 48 86 41 42 4F 52 54 22 00 87 12 9A 44 76 44
+E6 48 12 47 2A 40 8F 93 02 00 03 20 2F 52 3E 4F
+30 4D B0 12 EC 4E B0 12 B6 42 92 C3 DC 05 38 40
+A0 AA 39 42 03 43 19 83 FD 23 18 83 FA 23 92 B3
+DC 05 F3 23 87 12 60 4E 76 44 DE 1D EA 40 0E 44
+80 44 04 1B 5B 37 6D 00 38 44 58 40 40 42 40 49
+66 44 80 44 05 6C 69 6E 65 3A 38 44 D0 40 24 42
+38 44 80 44 04 1B 5B 30 6D 00 38 44 CA 48 00 00
+83 5B 27 5D 87 12 66 49 76 44 76 44 12 47 12 47
+2A 40 4A 45 01 27 87 12 A4 47 E2 44 50 45 40 42
+74 49 2A 40 DC 47 32 41 81 5C 92 42 C0 1D C4 1D
+30 4D 50 49 81 5B 82 43 BE 1D 30 4D 78 49 01 5D
+B2 43 BE 1D 30 4D BE 4F 02 00 3E 4F 30 4D FC 46
+82 49 53 00 87 12 20 48 EA 40 40 42 B8 49 54 49
+76 44 96 49 12 47 2A 40 66 49 96 49 2A 40 A0 49
+09 49 4D 4D 45 44 49 41 54 45 1A 42 B6 1D FA D0
+80 00 00 00 30 4D 76 48 88 50 4F 53 54 50 4F 4E
+45 00 87 12 A4 47 E2 44 50 45 58 40 40 42 74 49
+0C 41 40 42 02 4A 76 44 76 44 12 47 12 47 76 44
+12 47 12 47 2A 40 84 49 81 3B 82 93 BE 1D B5 27
+87 12 76 44 2A 40 12 47 A0 4A 86 49 2A 40 08 4A
+07 3A 4E 4F 4E 41 4D 45 30 12 46 4A 2F 83 8F 4E
+00 00 1E 42 C6 1D 1E B3 0E 63 0A 4E 39 40 00 02
+38 40 02 02 21 3C BA 40 87 12 FC FF A2 83 C6 1D
+B2 43 BE 1D 30 4D 20 4A 01 3A 30 12 46 4A 92 B3
+C6 1D A2 63 C6 1D 87 12 A4 47 E2 44 6E 4A 3D 41
+08 4E 7A 4E 5A D3 5A 53 0A 58 19 42 DA 1D 6E 4E
+3E F0 1E 00 09 5E 3E 4F 82 48 B6 1D 82 49 B8 1D
+82 4A BA 1D 82 4F BC 1D 2A 52 82 4A C6 1D 30 41
 82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D A8 49
-FE FF 89 48 00 00 30 4D 87 12 BA 45 0F 73 74 61
-63 6B 20 6D 69 73 6D 61 74 63 68 21 E6 49 18 46
-08 56 41 52 49 41 42 4C 45 00 B0 12 7C 4B BA 40
-86 12 FC FF E4 3F 30 49 08 43 4F 4E 53 54 41 4E
-54 00 B0 12 7C 4B BA 40 85 12 FC FF 8A 4E FE FF
-3E 4F D5 3F 08 4C 06 43 52 45 41 54 45 00 B0 12
-7C 4B BA 40 85 12 FC FF 8A 4A FE FF C8 3F EC 48
-05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00
-8A 4D 02 00 3D 41 30 4D 40 4C 05 44 45 46 45 52
-30 12 CE 4B 8B 3F D6 46 05 3E 42 4F 44 59 2E 52
-30 4D 26 4C 04 43 4F 44 45 00 B0 12 7C 4B 2A 82
-82 4A C6 1D 87 12 6E 4B 50 4F 22 4F 2A 40 74 4C
-07 43 4F 44 45 4E 4E 4D 87 12 48 4B 8C 4A 7E 4C
-2A 40 00 00 07 45 4E 44 43 4F 44 45 87 12 6A 4F
-C0 4B 2A 40 C6 49 03 41 53 4D 92 42 DA 1D EC 1D
-B2 40 26 4F DA 1D D9 3F A4 4C 06 45 4E 44 41 53
-4D 00 92 42 EC 1D DA 1D E9 3F 00 00 05 43 4F 4C
-4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53 C6 1D
-B2 43 BE 1D 30 40 6A 4F 00 00 05 4C 4F 32 48 49
-1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A 40 02 00
-A2 52 C6 1D ED 3F C6 4A 85 48 49 32 4C 4F 87 12
-F2 42 48 4D 30 48 8C 4A 50 4F 22 4F 2A 40 18 4D
-82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D A2 52
-C6 1D BE 40 28 43 00 00 2E 53 30 4D 5A 4C 84 45
-4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40 24 43
-FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D 76 45 84 54
-48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D 90 4C
-85 42 45 47 49 4E 30 40 F2 42 6E 4D 85 55 4E 54
-49 4C 39 40 28 43 A2 52 C6 1D 1A 42 C6 1D 8A 49
-FC FF 8A 4E FE FF 3E 4F 30 4D B6 4C 85 41 47 41
-49 4E 39 40 24 43 EF 3F F0 4B 85 57 48 49 4C 45
-87 12 34 4D 78 40 2A 40 DE 4A 86 52 45 50 45 41
-54 00 87 12 B2 4D 74 4D 2A 40 4E 4D 82 44 4F 00
-2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D BE 40
-3C 43 FE FF A2 53 00 1C 1A 42 00 1C 8A 43 00 00
-30 4D 42 48 84 4C 4F 4F 50 00 39 40 5E 43 A2 52
-C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF 1E 42
-00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A 00 00
-F6 3F 3E 4F 30 4D 98 43 85 2B 4C 4F 4F 50 39 40
-4C 43 E5 3F 04 4E 85 4C 45 41 56 45 1A 42 C6 1D
-BA 40 6E 43 00 00 BA 40 24 43 02 00 B2 50 06 00
-C6 1D A2 53 00 1C 2A 52 19 42 00 1C 89 4A 00 00
-30 4D 46 4E 04 4D 4F 56 45 00 0A 4E 38 4F 39 4F
-3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49 00 00
-18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83 18 83
-E8 49 00 00 1A 83 FA 23 30 4D BA 4D 0A 56 4F 43
-41 42 55 4C 41 52 59 00 87 12 2E 4C 34 40 10 00
-34 40 00 00 3C 43 34 40 00 00 30 48 5E 43 C6 4E
-F2 42 34 40 C8 1D 44 40 F2 40 30 48 FA 40 46 4C
-34 40 CA 1D FA 40 2A 40 6A 4A 05 46 4F 52 54 48
-84 12 E0 4E 4A 4F 1E 66 12 66 EA 4E 30 4D 38 4E
-2C 66 7A 4F 4A 51 9C 6A 92 6B 8E 6A 00 00 88 50
-94 4A 68 4C 00 00 AC 4D 09 41 53 53 45 4D 42 4C
-45 52 84 12 E0 4E EC 60 84 60 E8 5F 7A 5B 22 5A
-9E 5B B0 5E 00 00 12 62 24 62 7A 5A B8 5A B8 60
-00 00 00 00 AC 5B 14 4F 18 4F 04 41 4C 53 4F 00
-3A 40 0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F F8 4A
-08 50 52 45 56 49 4F 55 53 00 3A 40 0E 00 39 40
-CC 1D 38 40 CA 1D 8A 3F 06 46 04 4F 4E 4C 59 00
-82 43 CC 1D 30 4D DC 4D 0B 44 45 46 49 4E 49 54
-49 4F 4E 53 92 42 CA 1D DA 1D 30 4D 80 4D 07 43
-4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53 F9 98
-FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D 76 4B
-86 5B 54 48 45 4E 5D 00 30 4D D0 4F 86 5B 45 4C
-53 45 5D 00 87 12 34 40 00 00 36 41 B0 41 1E 46
-84 48 44 40 28 43 4A 50 8A 40 8A 40 BA 45 06 5B
-54 48 45 4E 5D 00 A6 4F 32 43 18 50 9E 45 40 41
-54 40 32 43 EC 4F 2A 40 8A 40 8A 40 BA 45 06 5B
-45 4C 53 45 5D 00 A6 4F 32 43 38 50 9E 45 40 41
-54 40 32 43 EA 4F 2A 40 BA 45 04 5B 49 46 5D 00
-A6 4F 32 43 EC 4F 24 43 EA 4F 9E 45 BA 45 05 0D
-0A 6B 6F 20 7C 45 FA 44 92 48 24 43 EC 4F DC 4F
-84 5B 49 46 5D 00 0E 93 3E 4F BC 27 30 4D 60 50
-89 5B 44 45 46 49 4E 45 44 5D 87 12 B0 41 1E 46
-76 46 6C 40 2A 40 70 50 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 87 12 B0 41 1E 46 76 46 6C 40 64 41
-2A 40 A4 50 3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F
-44 3C 74 4E 06 4D 41 52 4B 45 52 00 B0 12 7C 4B
-BA 40 84 12 FC FF BA 40 A2 50 FE FF 9A 42 C8 1D
-00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40 C6 4B
-F0 4E 80 4F 94 4F E8 50 3A 4E 82 4A C8 1D 2E 4E
-82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83 18 48
-FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23 2A 4A
-0A 93 F0 23 3E 4F 3D 41 30 4D 60 4F 09 50 57 52
-5F 53 54 41 54 45 84 12 E0 50 46 4F EE 6B CA 4D
-09 52 53 54 5F 53 54 41 54 45 92 42 0E 18 2A 51
-92 42 0C 18 2C 51 EF 3F 1C 51 08 50 57 52 5F 48
-45 52 45 00 92 42 C8 1D 2A 51 92 42 C6 1D 2C 51
-30 4D 30 51 08 52 53 54 5F 48 45 52 45 00 92 42
-C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F AC 4E 04 57
-49 50 45 00 39 40 10 00 29 83 B9 43 80 FF FC 23
-B2 40 84 44 82 44 B2 40 0C 52 0A 52 B2 40 76 49
-74 49 B2 40 46 4F 0E 18 B2 40 EE 6B 0C 18 30 12
-3A 51 B2 40 EA 44 E8 44 B2 40 AE 45 AC 45 B2 40
-A0 43 9E 43 B2 40 26 44 24 44 B2 40 3C 1D F8 44
-B2 40 18 00 0A 18 37 40 1A 40 36 40 BC 40 35 40
-0E 40 34 40 00 40 39 40 10 00 29 83 89 43 E0 1D
-FC 23 B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41
-7E 51 04 57 41 52 4D 00 30 40 0C 52 3D 40 5A 53
-92 C3 30 01 1E 42 08 18 0E 93 9E 24 D2 B3 01 02
-02 20 3E E3 1E 53 F2 D0 03 00 0D 02 E2 B2 60 02
-8A 20 39 42 B0 12 E4 62 D2 C3 23 02 2C 42 B2 40
-95 00 14 20 B2 40 00 40 18 20 B0 12 5A 62 02 24
-30 40 80 63 B0 12 E2 62 7A 93 FC 23 B2 40 87 AA
-14 20 92 43 16 20 B2 40 00 48 18 20 B0 12 5A 62
-29 42 B0 12 E4 62 92 43 14 20 82 43 16 20 78 43
-3C 42 B2 40 00 77 18 20 B0 12 5A 62 B2 40 40 69
-18 20 B0 12 A0 62 03 24 58 83 F3 23 D9 3F 0C 5C
-A2 43 16 20 B2 40 00 50 18 20 B0 12 A0 62 D0 23
-92 D3 40 06 82 43 46 06 92 C3 40 06 B0 12 0A 63
-38 40 00 1E 92 48 C6 01 04 20 92 48 C8 01 06 20
-5A 48 C2 01 92 43 02 20 7A 80 06 00 0F 24 7A 82
-0D 24 A2 43 02 20 6A 53 09 24 5A 53 07 24 6A 52
-05 24 3A 50 0B 20 0C 4A 30 40 86 63 B0 12 0A 63
-D2 48 0D 00 12 20 19 48 0E 00 82 49 08 20 1A 48
-16 00 0A 93 02 20 1A 48 24 00 82 4A 0A 20 09 5A
-82 49 0C 20 09 5A A2 93 02 20 04 24 82 49 0E 20
-39 50 20 00 19 82 12 20 19 82 12 20 82 49 10 20
-92 42 02 20 2C 20 3E 90 0A 00 1C 27 3E 90 16 00
-19 2F 2E 93 E8 26 F1 2E 30 4D BA 45 06 0D 1B 5B
-37 6D 23 00 7C 45 E2 42 BA 45 1F 46 61 73 74 46
-6F 72 74 68 20 56 33 30 30 20 28 43 29 4A 2E 4D
-2E 54 68 6F 6F 72 65 6E 73 20 7C 45 34 40 80 FF
-F2 42 28 41 D2 42 BA 45 0B 62 79 74 65 73 20 66
-72 65 65 20 24 43 46 4A 9E 4F 04 43 4F 4C 44 00
-92 B3 CA 05 FD 23 B2 40 04 A5 20 01 B2 40 88 5A
-5C 01 B2 D0 03 00 04 02 B2 40 FC FF 02 02 B2 C0
-03 00 06 02 B2 43 26 02 B2 43 22 02 E2 D2 25 02
-B2 43 42 02 B2 D3 46 02 B2 43 62 02 B2 D3 66 02
-F2 43 26 03 F2 D3 22 03 F2 40 A5 00 41 01 F2 40
-10 00 40 01 D2 43 41 01 F2 40 A5 00 61 01 B2 40
-48 00 62 01 82 43 66 01 39 40 00 01 B2 40 33 00
-64 01 D2 43 61 01 92 D2 9E 01 08 18 38 40 59 14
-18 83 FE 23 19 83 FA 23 F2 D0 10 00 2A 03 F2 40
-A5 00 A1 04 F2 C0 40 00 A2 04 B2 42 B0 01 39 40
-00 10 29 83 89 43 00 1C FC 23 39 40 4C 00 29 83
-B9 40 BC 53 B4 FF FB 23 B2 40 8A 44 F0 FF B2 40
-81 00 C0 05 92 42 02 18 C6 05 92 42 04 18 C8 05
-92 C3 C0 05 92 D3 DA 05 B2 40 81 A9 40 06 B2 40
-30 00 46 06 D2 D3 25 02 B2 D0 C0 04 0C 02 92 C3
-40 06 3F 40 80 1C 31 40 E0 1C 30 12 08 52 90 3E
-38 40 C0 1D 39 48 2A 48 09 5A 1A 52 C4 1D 09 9A
-03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A C4 1D
-30 4D 64 51 09 32 43 4F 4E 53 54 41 4E 54 87 12
-2E 4C 30 48 30 48 46 4C EA 54 2F 83 9F 4E 02 00
-00 00 2E 4E 3D 41 30 4D D4 54 09 32 56 41 52 49
-41 42 4C 45 87 12 2E 4C 34 40 04 00 06 43 46 4C
-2A 40 1C 15 B0 12 2A 40 1E 46 76 46 32 43 28 55
-32 47 28 43 7A 4A 60 55 2A 55 29 4E 39 90 86 12
-02 20 2E 53 15 3C 39 90 85 12 03 20 1E 4E 02 00
-0F 3C 39 90 84 12 0C 20 2E 52 B9 90 E8 54 02 00
-04 24 B9 90 10 55 02 00 03 20 B0 12 EA 54 60 55
-1B 17 30 41 32 B0 00 02 01 24 3E 4F 30 41 3E 40
-28 00 B0 12 12 55 B0 12 64 55 19 42 C6 1D A2 53
-C6 1D 89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 1D
-92 53 C4 1D B0 12 2A 40 1E 46 32 47 28 43 AC 55
-A2 55 21 53 3E 90 10 00 87 2D DA 2B AE 55 B2 41
-C4 1D D6 3F 87 12 B0 41 B0 54 BC 55 0C 43 1B 42
-C6 1D A2 53 C6 1D 6A 4E 3E 4F 7A 90 23 00 2F 20
-92 53 C4 1D B0 12 12 55 B0 12 64 55 0E 93 03 20
-3C 40 00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C
-2E 93 03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40
-20 02 12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93
-03 20 3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 1D
-A2 53 C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90
-26 00 09 20 3C 40 10 02 92 53 C4 1D B0 12 12 55
-B0 12 64 55 EB 3F 7A 90 40 00 16 20 3C 40 20 00
-92 53 C4 1D B0 12 8A 55 0C 20 3C 50 10 00 3E 40
-2B 00 B0 12 8A 55 92 92 C0 1D C4 1D 02 24 92 53
-C4 1D 8E 10 0C 5E D8 3F B0 12 8A 55 FA 23 3C 50
-10 00 B0 12 6E 55 EF 3F 0C 43 1B 42 C6 1D A2 53
-C6 1D 87 12 B0 41 B0 54 9A 56 FE 90 26 00 00 00
-3E 40 20 00 03 20 3C 50 82 00 C6 3F B0 12 8A 55
-E1 23 3C 50 80 00 B0 12 6E 55 DC 3F 7A 44 04 52
-45 54 49 00 87 12 34 40 00 13 30 48 2A 40 34 40
-2C 00 B4 55 92 56 D8 56 2E 4E 0E DC 09 4B A2 3F
-FA 4C 03 4D 4F 56 84 12 CE 56 00 40 E2 56 05 4D
-4F 56 2E 42 84 12 CE 56 40 40 00 00 03 41 44 44
-84 12 CE 56 00 50 FC 56 05 41 44 44 2E 42 84 12
-CE 56 40 50 08 57 04 41 44 44 43 00 84 12 CE 56
-00 60 16 57 06 41 44 44 43 2E 42 00 84 12 CE 56
-40 60 BE 56 04 53 55 42 43 00 84 12 CE 56 00 70
-34 57 06 53 55 42 43 2E 42 00 84 12 CE 56 40 70
-42 57 03 53 55 42 84 12 CE 56 00 80 52 57 05 53
-55 42 2E 42 84 12 CE 56 40 80 DC 4C 03 43 4D 50
-84 12 CE 56 00 90 6C 57 05 43 4D 50 2E 42 84 12
-CE 56 40 90 CA 4C 04 44 41 44 44 00 84 12 CE 56
-00 A0 86 57 06 44 41 44 44 2E 42 00 84 12 CE 56
-40 A0 78 57 03 42 49 54 84 12 CE 56 00 B0 A4 57
-05 42 49 54 2E 42 84 12 CE 56 40 B0 B0 57 03 42
-49 43 84 12 CE 56 00 C0 BE 57 05 42 49 43 2E 42
-84 12 CE 56 40 C0 CA 57 03 42 49 53 84 12 CE 56
-00 D0 D8 57 05 42 49 53 2E 42 84 12 CE 56 40 D0
-00 00 03 58 4F 52 84 12 CE 56 00 E0 F2 57 05 58
-4F 52 2E 42 84 12 CE 56 40 E0 24 57 03 41 4E 44
-84 12 CE 56 00 F0 0C 58 05 41 4E 44 2E 42 84 12
-CE 56 40 F0 B0 41 B4 55 2A 58 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F 5E 57 03 52 52 43
-84 12 24 58 00 10 3C 58 05 52 52 43 2E 42 84 12
-24 58 40 10 48 58 04 53 57 50 42 00 84 12 24 58
-80 10 56 58 03 52 52 41 84 12 24 58 00 11 64 58
-05 52 52 41 2E 42 84 12 24 58 40 11 70 58 03 53
-58 54 84 12 24 58 80 11 00 00 04 50 55 53 48 00
-84 12 24 58 00 12 8A 58 06 50 55 53 48 2E 42 00
-84 12 24 58 40 12 E4 57 04 43 41 4C 4C 00 84 12
-24 58 80 12 1A 53 0E 4A 87 12 E2 42 BA 45 0D 6F
-75 74 20 6F 66 20 62 6F 75 6E 64 73 E6 49 B0 41
-B0 54 D4 58 92 53 C4 1D 3E 40 2C 00 B0 12 2A 40
-1E 46 32 47 28 43 7A 4A 88 56 EC 58 0A 4E 3E 4F
-1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
-0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92
-D1 2F 8A 10 5A 06 8F 3F 7E 58 06 52 52 43 4D 2E
-41 00 84 12 CE 58 40 00 1A 59 04 52 52 43 4D 00
-84 12 CE 58 50 00 2A 59 06 52 52 41 4D 2E 41 00
-84 12 CE 58 40 01 38 59 04 52 52 41 4D 00 84 12
-CE 58 50 01 48 59 06 52 4C 41 4D 2E 41 00 84 12
-CE 58 40 02 56 59 04 52 4C 41 4D 00 84 12 CE 58
-50 02 66 59 06 52 52 55 4D 2E 41 00 84 12 CE 58
-40 03 74 59 04 52 52 55 4D 00 84 12 CE 58 50 03
-98 58 07 50 55 53 48 4D 2E 41 84 12 CE 58 00 14
-92 59 05 50 55 53 48 4D 84 12 CE 58 00 15 A2 59
-06 50 4F 50 4D 2E 41 00 84 12 CE 58 00 16 B0 59
-04 50 4F 50 4D 00 84 12 CE 58 00 17 85 12 00 3C
-84 59 03 53 3E 3D 85 12 00 38 D2 59 02 53 3C 00
-85 12 00 34 C0 59 03 30 3E 3D 85 12 00 30 E6 59
-02 30 3C 00 85 12 00 30 00 00 02 55 3C 00 85 12
-00 2C FA 59 03 55 3E 3D 85 12 00 28 F0 59 03 30
-3C 3E 85 12 00 24 0E 5A 02 30 3D 00 85 12 00 20
-00 00 02 49 46 00 1A 42 C6 1D 8A 4E 00 00 A2 53
-C6 1D 0E 4A 30 4D 04 5A 04 54 48 45 4E 00 1A 42
-C6 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
-00 02 31 2F 88 DA 00 00 30 4D 94 57 04 45 4C 53
-45 00 1A 42 C6 1D BA 40 00 3C 00 00 A2 53 C6 1D
-2F 83 8F 4A 00 00 E3 3F 38 5A 05 55 4E 54 49 4C
-3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11
-3A 90 00 FE 10 3B 3A F0 FF 03 08 DA 89 48 00 00
-A2 53 C6 1D 30 4D 18 58 05 41 47 41 49 4E 87 12
-CC 59 80 5A 2A 40 00 00 05 57 48 49 4C 45 87 12
-26 5A 78 40 2A 40 DC 59 06 52 45 50 45 41 54 00
-87 12 CC 59 80 5A 3E 5A 2A 40 DC 5A 3D 41 2E 4E
-08 4E 3E 4F 2A 48 0A 93 88 43 00 00 CA 23 98 42
-C6 1D 00 00 30 4D A8 58 03 42 57 31 84 12 DA 5A
-E0 1D F8 5A 03 42 57 32 84 12 DA 5A E2 1D 04 5B
-03 42 57 33 84 12 DA 5A E4 1D 1C 5B 3D 41 1A 42
-C6 1D 2E 4E 28 4E 08 93 8E 43 00 00 8B 23 BA 4F
-00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00
-03 46 57 31 84 12 1A 5B E6 1D 40 5B 03 46 57 32
-84 12 1A 5B E8 1D 4C 5B 03 46 57 33 84 12 1A 5B
-EA 1D 3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10
-02 24 3E E0 00 08 30 4D 58 5B 04 47 4F 54 4F 00
-87 12 CC 59 6C 4A 26 48 2A 40 00 00 05 3F 47 4F
-54 4F 87 12 62 5B 6C 4A 26 48 2A 40 00 00 03 4A
-4D 50 87 12 6C 4A AE 5A 2A 40 8C 5B 04 3F 4A 4D
-50 00 87 12 62 5B 6C 4A 78 40 80 5A 2A 40 87 12
-B0 41 B0 54 C6 5B 69 4E 3E 4F 3C 4F 2C 4C 1B 42
-C6 1D A2 53 C6 1D 79 90 52 00 0A 20 B0 12 8A 55
-5E 0E 5E 0E 0E DC 8B 4E 00 00 0E 4B 3D 41 30 4D
-79 90 23 00 0D 20 3C C0 40 00 92 53 C4 1D A2 53
-C6 1D B0 12 12 55 BB 4F 02 00 3E F0 0F 00 E8 3F
-79 90 26 00 03 20 3C E0 E0 00 EF 3F 3C C0 F0 00
-79 90 40 00 12 20 92 53 C4 1D B0 12 8A 55 D8 23
-3C D0 10 00 3E 40 2B 00 B0 12 8A 55 92 92 C0 1D
-C4 1D CE 27 92 53 C4 1D CB 3F 3C D0 30 00 A2 53
-C6 1D 3E 40 28 00 B0 12 12 55 BB 4F 02 00 3E 40
-29 00 EA 3F 87 12 B0 41 B0 54 6C 5C 3B 4F 2C 4B
-69 4E 7E 40 20 00 79 90 52 00 03 20 B0 12 8A 55
-B1 3F 3C C0 F0 00 A2 53 C6 1D 79 90 26 00 09 20
-3C D0 60 00 92 53 C4 1D B0 12 12 55 BB 4F 02 00
-A1 3F 3C D0 70 00 3E 40 28 00 B0 12 12 55 BB 4F
-02 00 3E 40 29 00 E2 3F 34 40 2C 00 BE 5B 64 5C
-62 40 2A 40 EE 56 04 4D 4F 56 41 00 84 12 B8 5C
-C0 00 10 5B 04 43 4D 50 41 00 84 12 B8 5C D0 00
-A8 5A 04 41 44 44 41 00 84 12 B8 5C E0 00 C8 5A
-04 53 55 42 41 00 84 12 B8 5C F0 00 D4 5C 05 43
-41 4C 4C 41 87 12 B0 41 B0 54 0C 5D 1B 42 C6 1D
-A2 53 C6 1D 6E 4E 3C 40 34 01 7E 90 52 00 0B 20
-7E 40 20 00 B0 12 8A 55 5C 0E 0C DE 8B 4C 00 00
-3E 4F 3D 41 30 4D 2C 53 7E 90 40 00 0B 20 92 53
-C4 1D 7E 40 20 00 B0 12 8A 55 EE 23 1C 53 3E 40
-2B 00 E8 3F A2 53 C6 1D 7E 90 23 00 09 20 3C 40
-3B 01 92 53 C4 1D B0 12 12 55 BB 4F 02 00 DC 3F
-7E 90 26 00 02 20 2C 53 F4 3F 7E 40 28 00 1C 83
-B0 12 12 55 BB 4F 02 00 3E 40 29 00 CB 3F 87 12
-B0 41 B0 54 96 5D 69 4E 3E 4F 3C 40 00 18 79 90
-52 00 05 20 B0 12 8A 55 0E 4C 3D 41 30 4D 82 43
-EE 1D 79 90 23 00 0B 20 92 53 C4 1D B0 12 12 55
-2F 53 3E F0 0F 00 5E 0A 5E 0E 0C DE ED 3F 79 90
-26 00 F2 27 79 90 40 00 12 20 92 53 C4 1D B0 12
-8A 55 E2 23 3E 40 2B 00 92 53 C4 1D B0 12 8A 55
-92 92 C0 1D C4 1D D8 27 92 53 C4 1D D5 3F 3E 40
-28 00 B0 12 12 55 8F 4E 00 00 3E 40 29 00 B0 12
-8A 55 3E 4F 3E F0 0F 00 0C DE EA 3F 87 12 B0 41
-B0 54 24 5E 3C 4F 69 4E 3E 40 20 00 79 90 52 00
-BB 27 82 43 EE 1D 79 90 26 00 08 20 92 53 C4 1D
-B0 12 12 55 2F 53 3E F0 0F 00 BF 3F 3E 40 28 00
-B0 12 12 55 F7 3F 1B 42 C6 1D A2 53 C6 1D 0C 4E
-3E 4F 1C D2 EE 1D 82 43 EE 1D 3C DE 8B 4C 00 00
-B2 41 C4 1D 30 4D 34 40 C4 1D F2 40 B0 40 34 40
-2C 00 8E 5D 1C 5E 56 5E 24 43 CE 56 C6 5C 04 4D
-4F 56 58 00 84 12 76 5E 40 00 00 40 8E 5E 06 4D
-4F 56 58 2E 41 00 84 12 76 5E 00 00 40 40 9E 5E
-06 4D 4F 56 58 2E 42 00 84 12 76 5E 40 00 40 40
-E2 5C 04 41 44 44 58 00 84 12 76 5E 40 00 00 50
-C2 5E 06 41 44 44 58 2E 41 00 84 12 76 5E 00 00
-40 50 D2 5E 06 41 44 44 58 2E 42 00 84 12 76 5E
-40 00 40 50 E4 5E 05 41 44 44 43 58 84 12 76 5E
-40 00 00 60 F6 5E 07 41 44 44 43 58 2E 41 84 12
-76 5E 00 00 40 60 06 5F 07 41 44 44 43 58 2E 42
-84 12 76 5E 40 00 40 60 F0 5C 05 53 55 42 43 58
-84 12 76 5E 40 00 00 70 2A 5F 07 53 55 42 43 58
-2E 41 84 12 76 5E 00 00 40 70 3A 5F 07 53 55 42
-43 58 2E 42 84 12 76 5E 40 00 40 70 4C 5F 04 53
-55 42 58 00 84 12 76 5E 40 00 00 80 5E 5F 06 53
-55 42 58 2E 41 00 84 12 76 5E 00 00 40 80 6E 5F
-06 53 55 42 58 2E 42 00 84 12 76 5E 40 00 40 80
-FE 5C 04 43 4D 50 58 00 84 12 76 5E 40 00 00 90
-92 5F 06 43 4D 50 58 2E 41 00 84 12 76 5E 00 00
-40 90 A2 5F 06 43 4D 50 58 2E 42 00 84 12 76 5E
-40 00 40 90 5C 5A 05 44 41 44 44 58 84 12 76 5E
-40 00 00 A0 C6 5F 07 44 41 44 44 58 2E 41 84 12
-76 5E 00 00 40 A0 D6 5F 07 44 41 44 44 58 2E 42
-84 12 76 5E 40 00 40 A0 B4 5F 04 42 49 54 58 00
-84 12 76 5E 40 00 00 B0 FA 5F 06 42 49 54 58 2E
-41 00 84 12 76 5E 00 00 40 B0 0A 60 06 42 49 54
-58 2E 42 00 84 12 76 5E 40 00 40 B0 1C 60 04 42
-49 43 58 00 84 12 76 5E 40 00 00 C0 2E 60 06 42
-49 43 58 2E 41 00 84 12 76 5E 00 00 40 C0 3E 60
-06 42 49 43 58 2E 42 00 84 12 76 5E 40 00 40 C0
-50 60 04 42 49 53 58 00 84 12 76 5E 40 00 00 D0
-62 60 06 42 49 53 58 2E 41 00 84 12 76 5E 00 00
-40 D0 72 60 06 42 49 53 58 2E 42 00 84 12 76 5E
-40 00 40 D0 FE 57 04 58 4F 52 58 00 84 12 76 5E
-40 00 00 E0 96 60 06 58 4F 52 58 2E 41 00 84 12
-76 5E 00 00 40 E0 A6 60 06 58 4F 52 58 2E 42 00
-84 12 76 5E 40 00 40 E0 18 5F 04 41 4E 44 58 00
-84 12 76 5E 40 00 00 F0 CA 60 06 41 4E 44 58 2E
-41 00 84 12 76 5E 00 00 40 F0 DA 60 06 41 4E 44
-58 2E 42 00 84 12 76 5E 40 00 40 F0 34 40 C4 1D
-F2 40 B0 40 B0 41 8E 5D 56 5E 24 43 24 58 80 5F
-04 52 52 43 58 00 84 12 FC 60 40 00 00 10 10 61
-06 52 52 43 58 2E 41 00 84 12 FC 60 00 00 40 10
-20 61 06 52 52 43 58 2E 42 00 84 12 FC 60 40 00
-40 10 32 61 04 52 52 55 58 00 84 12 FC 60 40 01
-00 10 44 61 06 52 52 55 58 2E 41 00 84 12 FC 60
-00 01 40 10 54 61 06 52 52 55 58 2E 42 00 84 12
-FC 60 40 01 40 10 66 61 05 53 57 50 42 58 84 12
-FC 60 40 00 80 10 78 61 07 53 57 50 42 58 2E 41
-84 12 FC 60 00 00 80 10 88 61 04 52 52 41 58 00
-84 12 FC 60 40 00 00 11 9A 61 06 52 52 41 58 2E
-41 00 84 12 FC 60 00 00 40 11 AA 61 06 52 52 41
-58 2E 42 00 84 12 FC 60 40 00 40 11 BC 61 04 53
-58 54 58 00 84 12 FC 60 40 00 80 11 CE 61 06 53
-58 54 58 2E 41 00 84 12 FC 60 00 00 80 11 18 5A
-05 50 55 53 48 58 84 12 FC 60 40 00 00 12 F0 61
-07 50 55 53 48 58 2E 41 84 12 FC 60 00 00 40 12
-00 62 07 50 55 53 48 58 2E 42 84 12 FC 60 40 00
-40 12 DE 61 03 52 50 54 87 12 B0 41 B0 54 30 62
-29 4E 7E 40 20 00 79 90 52 00 06 20 B0 12 8A 55
-03 24 3E D0 80 00 04 3C B0 12 12 55 3E F0 0F 00
-82 4E EE 1D 3E 4F 3D 41 30 4D 1A 43 25 3C D2 C3
-23 02 E2 B2 60 02 02 24 30 40 B0 53 1A 52 04 20
-19 62 06 20 92 43 14 20 A2 93 02 20 07 24 0A 5A
-49 69 82 4A 16 20 C2 49 18 20 0A 3C C2 4A 15 20
-8A 10 C2 4A 16 20 C2 49 17 20 89 10 C2 49 18 20
-B0 12 E2 62 5A 53 FC 23 39 40 05 00 D2 49 14 20
-4E 06 82 93 46 06 05 24 92 B3 6C 06 FD 27 C2 93
-4C 06 59 83 F3 2F 19 83 0B 30 F2 43 4E 06 82 93
-46 06 03 24 92 B3 6C 06 FD 27 5A 92 4C 06 F3 23
-30 41 19 43 3A 43 8A 10 C2 4A 4E 06 82 93 46 06
-05 24 92 B3 6C 06 FD 27 C2 93 4C 06 19 83 F3 23
-5A 42 4C 06 30 41 1A 52 08 20 09 43 1C D3 F2 40
-51 00 19 20 B0 12 5E 62 33 20 B0 12 E2 62 6A 53
-04 24 FB 23 D9 42 4C 06 FF 1D F2 43 4E 06 03 43
-19 53 39 90 01 02 F6 23 F2 43 4E 06 3C C0 03 00
-D2 D3 23 02 30 41 09 43 2C D3 F0 40 58 00 CB BC
-B0 12 5E 62 15 20 3A 40 FE FF 29 43 B0 12 E6 62
-D2 49 00 1E 4E 06 03 43 19 53 39 90 00 02 F8 23
-39 40 03 00 B0 12 E4 62 7A C0 E1 00 6A 92 DE 27
-8C 10 1C 52 4C 06 D2 D3 23 02 87 12 1A 45 BA 45
-0B 3C 20 53 44 20 45 72 72 6F 72 21 9E 63 2F 83
-B2 40 10 00 DC 1D 0E 4C B0 12 2A 40 D2 42 E6 49
-92 4B 0E 00 22 20 92 4B 10 00 24 20 5A 42 23 20
-58 42 22 20 92 93 02 20 08 24 59 42 24 20 89 10
-0A 59 88 10 08 58 0A 6A 88 10 08 58 30 41 82 43
-1C 20 92 42 0E 20 1A 20 C2 93 24 20 03 20 92 93
-22 20 14 24 92 42 22 20 D0 04 92 42 24 20 D2 04
-92 42 12 20 C8 04 92 42 E4 04 1A 20 92 42 E6 04
-1C 20 92 52 10 20 1A 20 82 63 1C 20 30 41 92 4B
-0E 00 22 20 92 4B 10 00 24 20 B0 12 DE 63 5A 4B
-03 00 82 5A 1A 20 82 63 1C 20 30 41 09 93 07 24
-F8 90 20 00 00 1E 03 20 18 53 19 83 F9 23 30 41
-1B 42 32 20 82 43 1E 20 B2 90 00 02 20 20 A8 20
-BB 80 00 02 12 00 8B 73 14 00 DB 53 03 00 DB 92
-12 20 03 00 11 28 CB 43 03 00 B0 12 B0 63 B0 12
-06 63 8B 43 10 00 9B 48 00 1E 0E 00 92 93 02 20
-03 24 9B 48 02 1E 10 00 B2 40 00 02 20 20 8B 93
-14 00 0B 20 92 9B 12 00 1E 20 82 2C BB 90 00 02
-12 00 03 2C 92 4B 12 00 20 20 B0 12 1E 64 1A 42
-1A 20 19 42 1C 20 22 3F 3C 42 3B 40 38 20 09 43
-CB 93 02 00 10 24 9B 92 24 20 0C 00 04 20 9B 92
-22 20 0A 00 07 24 09 4B 3B 50 1C 00 3B 90 18 21
-EF 23 0C 5C 30 41 0C 43 82 4B 32 20 8B 49 00 00
-09 93 0A 24 99 52 C4 1D 16 00 4A 93 05 34 C9 93
-02 00 02 34 5A 59 02 00 CB 4A 02 00 CB 43 03 00
-9B 42 1A 20 04 00 9B 42 1C 20 06 00 18 42 30 20
-8B 48 08 00 9B 48 1A 1E 0A 00 9B 48 14 1E 0C 00
-9B 48 1A 1E 0E 00 9B 48 14 1E 10 00 9B 48 1C 1E
-12 00 9B 48 1E 1E 14 00 82 43 1E 20 6A 93 5F 27
-C9 37 8B 43 16 00 7A 93 02 24 07 38 95 3F B2 40
-1C 21 F8 44 B2 40 BE 43 24 44 9B 42 C0 1D 18 00
-9B 82 C4 1D 18 00 9B 42 C2 1D 1A 00 9B 52 C4 1D
-1A 00 82 3F CB 43 02 00 2B 4B 82 4B 32 20 0B 93
-06 24 92 4B 16 00 1E 20 B0 12 98 64 22 C3 30 41
-1B 42 32 20 0B 93 FB 27 EB 93 02 00 04 20 B0 12
-10 6A B0 12 D8 69 CB 93 02 00 E4 37 1E 4B 18 00
-9F 4B 1A 00 00 00 31 50 06 00 3D 41 B0 12 94 65
-02 24 30 40 30 45 B2 40 3C 1D F8 44 B2 40 26 44
-24 44 30 40 1A 45 FA 54 85 52 45 41 44 22 5A 43
-19 3C 02 52 86 57 52 49 54 45 22 00 6A 43 12 3C
-88 4F 84 44 45 4C 22 00 6A 42 0C 3C AA 53 05 43
-4C 4F 53 45 B0 12 B0 65 30 4D B4 50 85 4C 4F 41
-44 22 7A 43 2F 83 8F 4E 00 00 0E 4A 82 93 BE 1D
-0A 24 87 12 34 40 34 40 30 48 30 48 D4 45 34 40
-64 66 30 48 2A 40 87 12 34 40 22 00 1E 46 84 48
-62 66 3D 41 35 4F 0E 55 82 4E 36 20 1C 43 92 42
-2C 20 22 20 92 42 2E 20 24 20 0E 95 8D 24 F5 90
-3A 00 01 00 01 20 25 53 F5 90 5C 00 00 00 08 20
-15 53 92 42 02 20 22 20 82 43 24 20 0E 95 70 24
-82 45 34 20 B0 12 DE 63 34 40 20 00 A2 93 02 20
-04 24 92 92 22 20 02 20 02 24 14 42 12 20 B0 12
-BE 64 2C 43 0A 43 08 4A 58 0E 08 58 82 48 30 20
-C8 93 00 1E 61 24 39 42 F8 95 00 1E 04 20 18 53
-19 83 FA 23 15 53 F5 90 2E 00 FF FF 19 24 39 50
-03 00 B0 12 3C 64 06 20 F5 90 5C 00 FF FF 29 24
-0E 95 27 28 15 42 34 20 1A 53 3A 90 10 00 DB 23
-92 53 1A 20 82 63 1C 20 14 83 D1 23 2C 42 3C 3C
-F5 90 2E 00 FE FF EE 27 B0 12 3C 64 EB 23 39 40
-03 00 F8 95 00 1E 04 20 18 53 19 83 FA 23 09 3C
-0E 95 E0 2F F5 90 5C 00 FF FF DC 23 B0 12 3C 64
-D9 23 18 42 30 20 92 48 1A 1E 22 20 92 48 14 1E
-24 20 F8 B0 10 00 0B 1E 14 24 82 93 24 20 06 20
-82 93 22 20 03 20 92 42 02 20 22 20 0E 95 8E 2F
-92 42 22 20 2C 20 92 42 24 20 2E 20 8F 43 00 00
-03 3C 2A 4F B0 12 C8 64 34 40 00 40 35 40 0E 40
-3A 4F 3E 4F 0A 93 04 24 7A 93 12 20 0C 93 01 20
-30 4D 87 12 BA 45 0B 3C 20 4F 70 65 6E 45 72 72
-6F 72 1A 45 F2 42 84 48 7C 45 44 45 24 43 9C 63
-1A 93 B6 20 0C 93 ED 23 30 4D F8 65 04 52 45 41
-44 00 2F 83 8F 4E 00 00 1E 42 32 20 B0 12 50 64
-1E 82 32 20 30 4D 2C 43 12 12 2A 20 18 42 02 20
-08 58 2A 41 82 9A 0A 20 A1 24 B0 12 06 63 09 43
-28 93 03 24 89 93 02 1E 03 20 89 93 00 1E 07 24
-09 58 39 90 00 02 F4 23 91 53 00 00 EA 3F 0C 43
-6A 41 B9 43 00 1E 28 93 0F 24 B9 40 FF 0F 02 1E
-09 11 8A 10 09 5A 5A 41 01 00 0A 11 09 10 82 4A
-28 20 82 49 26 20 07 3C 09 11 C2 49 26 20 C2 4A
-27 20 82 43 28 20 3A 41 82 4A 2A 20 30 41 0A 12
-1A 52 08 20 B0 12 46 63 3A 41 1A 52 0C 20 30 40
-46 63 F2 B0 40 00 A2 04 29 20 F2 B0 10 00 A2 04
-FC 27 5A 42 B0 04 4A 11 59 42 B4 04 F2 40 20 00
-C0 04 D2 42 B1 04 C8 04 1A 52 E4 04 D2 42 B5 04
-C8 04 19 52 E4 04 D2 42 B2 04 C0 04 B2 40 00 08
-C8 04 1A 52 E4 04 92 42 B6 04 C0 04 B2 80 BC 07
-C0 04 B2 40 00 02 C8 04 19 52 E4 04 30 41 22 2A
-2B 2C 2F 3A 3B 3C 3D 3E 3F 5B 5C 5D 7C 2E 29 92
-06 38 39 80 03 00 B0 12 2E 69 39 40 03 00 7A 4B
-C8 4A 00 1E 82 9B 36 20 12 28 0D 12 3D 40 0F 00
-3C 40 DE 68 7A 9C F3 27 1D 83 FC 23 3D 41 6A 9C
-E6 27 3A 80 21 00 EB 3B 18 53 19 83 E8 23 09 93
-06 24 F8 40 20 00 00 1E 18 53 19 83 FA 23 30 41
-2A 93 EB 20 2C 93 0D 24 0C 93 BA 24 87 12 BA 45
-0C 3C 20 57 72 69 74 65 45 72 72 6F 72 00 24 43
-C2 67 B0 12 F6 67 92 42 26 20 22 20 92 42 28 20
-24 20 B0 12 6E 68 B0 12 BE 64 18 42 30 20 F8 40
-20 00 0B 1E B0 12 82 68 88 43 0C 1E 88 4A 0E 1E
-88 49 10 1E 88 49 12 1E 98 42 24 20 14 1E 98 42
-22 20 1A 1E 88 43 1C 1E 88 43 1E 1E 1C 43 1B 42
-34 20 82 9B 36 20 CA 27 FB 90 2E 00 00 00 C6 27
-39 40 0B 00 B0 12 FE 68 B0 12 1A 6A 2A 43 B0 12
-C8 64 0C 93 BB 23 30 4D 1A 4B 04 00 19 4B 06 00
-B0 12 0C 63 B0 12 82 68 18 4B 08 00 88 49 12 1E
-88 4A 16 1E 88 49 18 1E 98 4B 12 00 1C 1E 98 4B
-14 00 1E 1E 1A 4B 04 00 19 4B 06 00 30 40 48 63
-9B 52 1E 20 12 00 8B 63 14 00 1A 42 1A 20 19 42
-1C 20 30 40 48 63 B2 40 00 02 1E 20 1B 42 32 20
-B0 12 10 6A 82 43 1E 20 DB 53 03 00 DB 92 12 20
-03 00 22 20 CB 43 03 00 B0 12 B0 63 08 12 0A 12
-B0 12 F6 67 2A 91 05 24 B0 12 6E 68 2A 41 B0 12
-06 63 3A 41 38 41 98 42 26 20 00 1E 92 93 02 20
-03 24 98 42 28 20 02 1E B0 12 6E 68 9B 42 26 20
-0E 00 9B 42 28 20 10 00 30 40 1E 64 04 66 05 57
-52 49 54 45 B0 12 26 6A 30 4D DC 67 07 53 44 5F
-45 4D 49 54 B2 90 00 02 1E 20 02 28 B0 12 26 6A
-18 42 1E 20 C8 4E 00 1E 92 53 1E 20 3E 4F 30 4D
-58 4B 13 00 59 4B 14 00 89 10 09 58 58 4B 15 00
-5B 42 12 20 0A 43 3C 42 08 11 09 10 4A 10 1C 83
-0B 11 FA 2B 0A 11 1C 83 FD 37 1B 42 32 20 19 5B
-0A 00 18 6B 0C 00 8B 49 0E 00 8B 48 10 00 CB 4A
-03 00 1A 4B 12 00 BB C0 FF 01 12 00 3A F0 FF 01
-82 4A 1E 20 B0 12 BA 64 30 4D 0C 93 38 20 38 90
-E0 01 03 2C C8 93 20 1E 02 24 7C 40 E5 00 C8 4C
-00 1E B0 12 1A 6A B0 12 BC 63 82 4A 2A 20 0B 4A
-B0 12 06 63 1A 48 00 1E 88 43 00 1E 92 93 02 20
-09 24 19 48 02 1E 88 43 02 1E 39 F0 FF 0F 39 90
-FF 0F 02 20 3A 93 0E 24 82 4A 22 20 82 49 24 20
-B0 12 BC 63 0B 9A E6 27 0A 12 0A 4B B0 12 6E 68
-3A 41 DD 3F 0A 4B B0 12 6E 68 B0 12 B0 65 30 4D
-8C 4D 08 54 45 52 4D 32 53 44 22 00 87 12 18 66
-34 40 02 00 F2 42 84 48 64 66 AC 6B 3D 41 92 C3
-DC 05 08 43 B0 12 5A 44 92 B3 DC 05 FD 27 59 42
-CC 05 69 92 0D 24 C8 49 00 1E 18 53 38 90 FF 01
-F3 2B 03 24 B0 12 26 6A EC 3F B0 12 6C 44 EC 3F
-B0 12 6C 44 82 48 1E 20 B0 12 B0 65 30 4D
+FE FF 89 48 00 00 30 4D 87 12 80 44 0F 73 74 61
+63 6B 20 6D 69 73 6D 61 74 63 68 21 F2 48 F2 47
+05 44 45 46 45 52 B0 12 5E 4A BA 40 30 40 FC FF
+BA 40 54 4A FE FF E3 3F 3A 48 06 43 52 45 41 54
+45 00 B0 12 5E 4A BA 40 85 12 FC FF 8A 4A FE FF
+D6 3F D0 4A 05 44 4F 45 53 3E 1A 42 BA 1D BA 40
+84 12 00 00 8A 4D 02 00 3D 41 30 4D B0 45 05 3E
+42 4F 44 59 2E 52 30 4D EA 4A 04 43 4F 44 45 00
+B0 12 5E 4A 82 43 D8 5F A2 82 C6 1D 87 12 CE 4D
+A0 4D 2A 40 2A 4B 07 43 4F 44 45 4E 4E 4D B0 12
+2C 4A F0 3F 00 00 07 45 4E 44 43 4F 44 45 87 12
+E8 4D A0 4A 2A 40 D2 48 03 41 53 4D B2 40 A4 4D
+DA 1D DE 3F 56 4B 06 45 4E 44 41 53 4D 00 87 12
+5E 4B 12 4E 2A 40 00 00 05 43 4F 4C 4F 4E 1A 42
+C6 1D BA 40 87 12 00 00 A2 53 C6 1D B2 43 BE 1D
+30 40 E8 4D 00 00 05 4C 4F 32 48 49 1A 42 C6 1D
+BA 40 B0 12 00 00 BA 40 2A 40 02 00 A2 52 C6 1D
+ED 3F C0 49 85 48 49 32 4C 4F 87 12 02 47 F4 4B
+12 47 86 49 CE 4D A0 4D 2A 40 C4 4B 82 49 46 00
+2F 83 8F 4E 00 00 1E 42 C6 1D A2 52 C6 1D BE 40
+40 42 00 00 2E 53 30 4D 04 4B 84 45 4C 53 45 00
+A2 52 C6 1D 1A 42 C6 1D BA 40 3C 42 FC FF 8E 4A
+00 00 2A 83 0E 4A 30 4D 32 44 84 54 48 45 4E 00
+9E 42 C6 1D 00 00 3E 4F 30 4D 46 4B 85 42 45 47
+49 4E 30 40 02 47 1A 4C 85 55 4E 54 49 4C 39 40
+40 42 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E
+FE FF 3E 4F 30 4D 68 4B 85 41 47 41 49 4E 39 40
+3C 42 EF 3F DC 44 85 57 48 49 4C 45 87 12 E0 4B
+76 40 2A 40 96 44 86 52 45 50 45 41 54 00 87 12
+5E 4C 20 4C 2A 40 FA 4B 82 44 4F 00 2F 83 8F 4E
+00 00 A2 53 C6 1D 1E 42 C6 1D BE 40 54 42 FE FF
+A2 53 00 1C 1A 42 00 1C 8A 43 00 00 30 4D 44 47
+84 4C 4F 4F 50 00 39 40 76 42 A2 52 C6 1D 1A 42
+C6 1D 8A 49 FC FF 8A 4E FE FF 1E 42 00 1C A2 83
+00 1C 2E 4E 0E 93 03 24 8E 4A 00 00 F6 3F 3E 4F
+30 4D 90 42 85 2B 4C 4F 4F 50 39 40 64 42 E5 3F
+B0 4C 04 4D 4F 56 45 00 0A 4E 38 4F 39 4F 3E 4F
+0A 93 11 24 08 99 0F 24 06 2C F8 49 00 00 18 53
+1A 83 FB 23 30 4D 08 5A 09 5A 19 83 18 83 E8 49
+00 00 1A 83 FA 23 30 4D 66 4C 0A 56 4F 43 41 42
+55 4C 41 52 59 00 87 12 F2 4A 76 44 10 00 76 44
+00 00 54 42 76 44 00 00 12 47 76 42 44 4D 02 47
+76 44 C8 1D 34 40 EA 40 12 47 F2 40 0A 4B 76 44
+CA 1D F2 40 2A 40 64 49 05 46 4F 52 54 48 84 12
+5E 4D C8 4D DA 63 CE 63 68 4D DC 4B E4 4C E8 63
+F8 4D 84 4E 8E 65 1E 69 40 68 00 00 CA 52 8E 49
+1E 4B 00 00 58 4C 09 41 53 53 45 4D 42 4C 45 52
+84 12 5E 4D A2 5E 3A 5E 9E 5D 62 59 06 58 00 00
+66 5C 00 00 C8 5F DC 5F 5E 58 9C 58 6E 5E 00 00
+00 00 3E 59 92 4D 96 4D 04 41 4C 53 4F 00 3A 40
+0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F D8 49 08 50
+52 45 56 49 4F 55 53 00 3A 40 0E 00 39 40 CC 1D
+38 40 CA 1D 8A 3F C6 44 04 4F 4E 4C 59 00 82 43
+CC 1D 30 4D 88 4C 0B 44 45 46 49 4E 49 54 49 4F
+4E 53 92 42 CA 1D DA 1D 30 4D 6E 4D FE 4D 12 4E
+22 4E 3A 4E 82 4A C8 1D 2E 4E 82 4E C6 1D 3D 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98 FC 2B
+89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23 3E 4F
+3D 41 30 4D DE 4D 09 50 57 52 5F 53 54 41 54 45
+84 12 1A 4E C4 4D 7A 69 76 4C 09 52 53 54 5F 53
+54 41 54 45 92 42 0E 18 64 4E 92 42 0C 18 66 4E
+EF 3F 56 4E 08 50 57 52 5F 48 45 52 45 00 92 42
+C8 1D 64 4E 92 42 C6 1D 66 4E 30 4D 6A 4E 08 52
+53 54 5F 48 45 52 45 00 92 42 C8 1D 0E 18 92 42
+C6 1D 0C 18 EC 3F 2A 4D 04 57 49 50 45 00 39 40
+10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 42 DE 42
+B2 40 4A 4F 48 4F B2 40 80 48 7E 48 B2 40 C4 4D
+0E 18 B2 40 7A 69 0C 18 30 12 74 4E B2 40 E4 43
+E2 43 B2 40 6A 44 68 44 B2 40 98 42 96 42 B2 40
+52 43 50 43 B2 40 3C 1D EC 43 1B 42 32 20 0B 93
+04 24 CB 43 02 00 2B 4B FA 3F B2 40 18 00 0A 18
+37 40 1A 40 36 40 92 40 35 40 0E 40 34 40 00 40
+B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41 B8 4E
+04 57 41 52 4D 00 30 40 4A 4F 3D 40 98 50 92 C3
+30 01 1E 42 08 18 0E 93 9E 24 D2 B3 01 02 02 20
+3E E3 1E 53 F2 D0 03 00 0D 02 E2 B2 60 02 8A 20
+39 42 B0 12 9E 60 D2 C3 23 02 2C 42 B2 40 95 00
+14 20 B2 40 00 40 18 20 B0 12 14 60 02 24 30 40
+3A 61 B0 12 9C 60 7A 93 FC 23 B2 40 87 AA 14 20
+92 43 16 20 B2 40 00 48 18 20 B0 12 14 60 29 42
+B0 12 9E 60 92 43 14 20 82 43 16 20 78 43 3C 42
+B2 40 00 77 18 20 B0 12 14 60 B2 40 40 69 18 20
+B0 12 5A 60 03 24 58 83 F3 23 D9 3F 0C 5C A2 43
+16 20 B2 40 00 50 18 20 B0 12 5A 60 D0 23 92 D3
+40 06 82 43 46 06 92 C3 40 06 B0 12 C4 60 38 40
+00 1E 92 48 C6 01 04 20 92 48 C8 01 06 20 5A 48
+C2 01 92 43 02 20 7A 80 06 00 0F 24 7A 82 0D 24
+A2 43 02 20 6A 53 09 24 5A 53 07 24 6A 52 05 24
+3A 50 0B 20 0C 4A 30 40 40 61 B0 12 C4 60 D2 48
+0D 00 12 20 19 48 0E 00 82 49 08 20 1A 48 16 00
+0A 93 02 20 1A 48 24 00 82 4A 0A 20 09 5A 82 49
+0C 20 09 5A A2 93 02 20 04 24 82 49 0E 20 39 50
+20 00 19 82 12 20 19 82 12 20 82 49 10 20 92 42
+02 20 2C 20 3E 90 0A 00 1A 27 3E 90 16 00 17 2F
+2E 93 E6 26 EF 2E 30 4D 80 44 06 0D 1B 5B 37 6D
+23 00 38 44 34 42 80 44 19 46 61 73 74 46 6F 72
+74 68 20 C2 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
+73 20 38 44 76 44 30 FF 02 47 B8 40 24 42 80 44
+0A 62 79 74 65 73 20 66 72 65 65 00 3C 42 40 49
+2C 4C 04 43 4F 4C 44 00 92 B3 CA 05 FD 23 B2 40
+04 A5 20 01 98 50 B2 40 88 5A 5C 01 B2 D3 06 02
+B2 40 FC FF 02 02 B2 43 26 02 B2 D3 22 02 E2 D2
+25 02 B2 43 42 02 B2 D3 46 02 B2 43 62 02 B2 D3
+66 02 F2 43 26 03 F2 D3 22 03 F2 40 A5 00 41 01
+F2 40 10 00 40 01 D2 43 41 01 F2 40 A5 00 61 01
+B2 40 48 00 62 01 82 43 66 01 39 40 00 01 B2 40
+33 00 64 01 D2 43 61 01 92 D2 9E 01 08 18 38 40
+59 14 18 83 FE 23 19 83 FA 23 F2 D0 10 00 2A 03
+F2 40 A5 00 A1 04 F2 C0 40 00 A2 04 B2 42 B0 01
+39 40 00 10 29 83 89 43 00 1C FC 23 39 40 4C 00
+29 83 B9 40 F6 50 B4 FF FB 23 B2 40 84 43 F0 FF
+B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
+C8 05 92 C3 C0 05 92 D3 DA 05 B2 40 81 A9 40 06
+B2 40 30 00 46 06 D2 D3 25 02 B2 D0 C0 04 0C 02
+92 C3 40 06 3F 40 80 1C 31 40 E0 1C 30 12 46 4F
+9C 3E E2 50 07 43 4F 4D 50 41 52 45 0C 4E 38 4F
+3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83
+07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D
+1E 43 30 4D 58 4A 86 5B 54 48 45 4E 5D 00 30 4D
+16 52 86 5B 45 4C 53 45 5D 00 87 12 76 44 00 00
+C6 40 A4 47 E2 44 86 47 34 40 40 42 8C 52 44 40
+80 44 06 5B 54 48 45 4E 5D 00 EC 51 4A 42 5C 52
+5A 44 D0 40 58 40 4A 42 32 52 2A 40 44 40 80 44
+06 5B 45 4C 53 45 5D 00 EC 51 4A 42 7A 52 5A 44
+D0 40 58 40 4A 42 30 52 2A 40 80 44 04 5B 49 46
+5D 00 EC 51 4A 42 32 52 3C 42 30 52 5A 44 80 44
+05 0D 0A 6B 6F 20 38 44 EE 43 94 47 3C 42 32 52
+22 52 84 5B 49 46 5D 00 0E 93 3E 4F BE 27 30 4D
+A2 52 89 5B 44 45 46 49 4E 45 44 5D 87 12 A4 47
+E2 44 50 45 6A 40 2A 40 B2 52 8B 5B 55 4E 44 45
+46 49 4E 45 44 5D 87 12 A4 47 E2 44 50 45 6A 40
+00 41 2A 40 E6 52 3D 41 B2 4E 0E 18 A2 4E 0C 18
+3E 4F 30 40 74 4E F2 4C 06 4D 41 52 4B 45 52 00
+B0 12 5E 4A BA 40 84 12 FC FF BA 40 E4 52 FE FF
+9A 42 C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D
+30 40 A6 4A 1C 15 B0 12 2A 40 E2 44 50 45 4A 42
+3A 53 0C 46 40 42 74 49 54 53 3C 53 39 4E 39 80
+86 12 08 24 19 53 02 20 2E 4E 04 3C 2E 53 19 53
+01 24 2E 82 1B 17 30 41 32 B0 00 02 01 24 3E 4F
+30 41 3E 40 28 00 B0 12 24 53 B0 12 58 53 19 42
+C6 1D A2 53 C6 1D 89 4E 00 00 3E 40 29 00 1C 15
+12 12 C4 1D 92 53 C4 1D B0 12 2A 40 E2 44 0C 46
+40 42 A0 53 96 53 21 53 3E 90 10 00 81 2D DA 2B
+A2 53 B2 41 C4 1D D6 3F 87 12 A4 47 D6 44 B0 53
+0C 43 1B 42 C6 1D A2 53 C6 1D 6A 4E 3E 4F 7A 90
+23 00 29 20 92 53 C4 1D B0 12 24 53 B0 12 58 53
+3C 40 00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24
+3C 40 20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24
+3C 40 30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24
+3C 40 30 00 19 42 C6 1D A2 53 C6 1D 89 4E 00 00
+3E 4F 3D 41 30 4D 7A 90 26 00 09 20 3C 40 10 02
+92 53 C4 1D B0 12 24 53 B0 12 58 53 EB 3F 7A 90
+40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12 7E 53
+0C 20 3C 50 10 00 3E 40 2B 00 B0 12 7E 53 92 92
+C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E D8 3F
+B0 12 7E 53 FA 23 3C 50 10 00 B0 12 62 53 EF 3F
+0C 43 1B 42 C6 1D A2 53 C6 1D 87 12 A4 47 D6 44
+82 54 FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
+82 00 C6 3F B0 12 7E 53 E1 23 3C 50 80 00 B0 12
+62 53 DC 3F D6 42 04 52 45 54 49 00 87 12 76 44
+00 13 12 47 2A 40 76 44 2C 00 A8 53 7A 54 C0 54
+09 4B 2E 4E 0E DC A2 3F A6 4B 03 4D 4F 56 84 12
+B6 54 00 40 CA 54 05 4D 4F 56 2E 42 84 12 B6 54
+40 40 00 00 03 41 44 44 84 12 B6 54 00 50 E4 54
+05 41 44 44 2E 42 84 12 B6 54 40 50 F0 54 04 41
+44 44 43 00 84 12 B6 54 00 60 FE 54 06 41 44 44
+43 2E 42 00 84 12 B6 54 40 60 A6 54 04 53 55 42
+43 00 84 12 B6 54 00 70 1C 55 06 53 55 42 43 2E
+42 00 84 12 B6 54 40 70 2A 55 03 53 55 42 84 12
+B6 54 00 80 3A 55 05 53 55 42 2E 42 84 12 B6 54
+40 80 88 4B 03 43 4D 50 84 12 B6 54 00 90 54 55
+05 43 4D 50 2E 42 84 12 B6 54 40 90 76 4B 04 44
+41 44 44 00 84 12 B6 54 00 A0 6E 55 06 44 41 44
+44 2E 42 00 84 12 B6 54 40 A0 60 55 03 42 49 54
+84 12 B6 54 00 B0 8C 55 05 42 49 54 2E 42 84 12
+B6 54 40 B0 98 55 03 42 49 43 84 12 B6 54 00 C0
+A6 55 05 42 49 43 2E 42 84 12 B6 54 40 C0 B2 55
+03 42 49 53 84 12 B6 54 00 D0 C0 55 05 42 49 53
+2E 42 84 12 B6 54 40 D0 00 00 03 58 4F 52 84 12
+B6 54 00 E0 DA 55 05 58 4F 52 2E 42 84 12 B6 54
+40 E0 0C 55 03 41 4E 44 84 12 B6 54 00 F0 F4 55
+05 41 4E 44 2E 42 84 12 B6 54 40 F0 A4 47 A8 53
+12 56 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
+4F 3F 46 55 03 52 52 43 84 12 0C 56 00 10 24 56
+05 52 52 43 2E 42 84 12 0C 56 40 10 30 56 04 53
+57 50 42 00 84 12 0C 56 80 10 3E 56 03 52 52 41
+84 12 0C 56 00 11 4C 56 05 52 52 41 2E 42 84 12
+0C 56 40 11 58 56 03 53 58 54 84 12 0C 56 80 11
+00 00 04 50 55 53 48 00 84 12 0C 56 00 12 72 56
+06 50 55 53 48 2E 42 00 84 12 0C 56 40 12 CC 55
+04 43 41 4C 4C 00 84 12 0C 56 80 12 1A 53 0E 4A
+87 12 34 42 80 44 0D 6F 75 74 20 6F 66 20 62 6F
+75 6E 64 73 F2 48 A4 47 D6 44 BC 56 92 53 C4 1D
+3E 40 2C 00 B0 12 2A 40 E2 44 0C 46 40 42 74 49
+70 54 D4 56 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F
+66 56 06 52 52 43 4D 2E 41 00 84 12 B6 56 40 00
+02 57 04 52 52 43 4D 00 84 12 B6 56 50 00 12 57
+06 52 52 41 4D 2E 41 00 84 12 B6 56 40 01 20 57
+04 52 52 41 4D 00 84 12 B6 56 50 01 30 57 06 52
+4C 41 4D 2E 41 00 84 12 B6 56 40 02 3E 57 04 52
+4C 41 4D 00 84 12 B6 56 50 02 4E 57 06 52 52 55
+4D 2E 41 00 84 12 B6 56 40 03 5C 57 04 52 52 55
+4D 00 84 12 B6 56 50 03 80 56 07 50 55 53 48 4D
+2E 41 84 12 B6 56 00 14 7A 57 05 50 55 53 48 4D
+84 12 B6 56 00 15 8A 57 06 50 4F 50 4D 2E 41 00
+84 12 B6 56 00 16 98 57 04 50 4F 50 4D 00 84 12
+B6 56 00 17 6C 57 03 53 3E 3D 85 12 00 38 B6 57
+02 53 3C 00 85 12 00 34 A8 57 03 30 3E 3D 85 12
+00 30 CA 57 02 30 3C 00 85 12 00 30 00 00 02 55
+3C 00 85 12 00 2C DE 57 03 55 3E 3D 85 12 00 28
+D4 57 03 30 3C 3E 85 12 00 24 F2 57 02 30 3D 00
+85 12 00 20 00 00 02 49 46 00 1A 42 C6 1D 8A 4E
+00 00 A2 53 C6 1D 0E 4A 30 4D E8 57 04 54 48 45
+4E 00 1A 42 C6 1D 08 4E 3E 4F 09 48 29 53 0A 89
+0A 11 3A 90 00 02 33 2F 88 DA 00 00 30 4D 7C 55
+04 45 4C 53 45 00 1A 42 C6 1D BA 40 00 3C 00 00
+A2 53 C6 1D 2F 83 8F 4A 00 00 E3 3F 1C 58 05 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83
+0A 89 0A 11 3A 90 00 FE 12 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C6 1D 30 4D 00 56 05 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49
+4C 45 87 12 0A 58 76 40 2A 40 C0 57 06 52 45 50
+45 41 54 00 87 12 92 58 22 58 2A 40 BE 58 3D 41
+08 4E 3E 4F 2A 48 B2 92 C4 1D CD 2F 98 42 C6 1D
+00 00 30 4D 90 56 03 42 57 31 84 12 BC 58 00 00
+D6 58 03 42 57 32 84 12 BC 58 00 00 E2 58 03 42
+57 33 84 12 BC 58 00 00 FA 58 3D 41 1A 42 C6 1D
+28 4E B2 92 C4 1D 90 2B BA 4F 00 00 A2 53 C6 1D
+8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12
+F8 58 00 00 1A 59 03 46 57 32 84 12 F8 58 00 00
+26 59 03 46 57 33 84 12 F8 58 00 00 00 00 05 3F
+47 4F 54 4F 3E 90 00 30 07 24 3E E0 00 04 3E B0
+00 10 02 24 3E E0 00 08 87 12 66 49 3C 47 2A 40
+32 59 04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
+00 3C F2 3F 87 12 A4 47 D6 44 7C 59 69 4E 3E 4F
+3C 4F 2C 4C 1B 42 C6 1D A2 53 C6 1D 79 90 52 00
+0A 20 B0 12 7E 53 5E 0E 5E 0E 0E DC 8B 4E 00 00
+0E 4B 3D 41 30 4D 79 90 23 00 0D 20 3C C0 40 00
+92 53 C4 1D A2 53 C6 1D B0 12 24 53 BB 4F 02 00
+3E F0 0F 00 E8 3F 79 90 26 00 03 20 3C E0 E0 00
+EF 3F 3C C0 F0 00 79 90 40 00 12 20 92 53 C4 1D
+B0 12 7E 53 D8 23 3C D0 10 00 3E 40 2B 00 B0 12
+7E 53 92 92 C0 1D C4 1D CE 27 92 53 C4 1D CB 3F
+3C D0 30 00 A2 53 C6 1D 3E 40 28 00 B0 12 24 53
+BB 4F 02 00 3E 40 29 00 EA 3F 87 12 A4 47 D6 44
+22 5A 3B 4F 2C 4B 69 4E 7E 40 20 00 79 90 52 00
+03 20 B0 12 7E 53 B1 3F 3C C0 F0 00 A2 53 C6 1D
+79 90 26 00 09 20 3C D0 60 00 92 53 C4 1D B0 12
+24 53 BB 4F 02 00 A1 3F 3C D0 70 00 3E 40 28 00
+B0 12 24 53 BB 4F 02 00 3E 40 29 00 E2 3F 76 44
+2C 00 74 59 1A 5A 66 40 2A 40 D6 54 04 4D 4F 56
+41 00 84 12 6E 5A C0 00 EE 58 04 43 4D 50 41 00
+84 12 6E 5A D0 00 8C 58 04 41 44 44 41 00 84 12
+6E 5A E0 00 AC 58 04 53 55 42 41 00 84 12 6E 5A
+F0 00 8A 5A 05 43 41 4C 4C 41 87 12 A4 47 D6 44
+C2 5A 1B 42 C6 1D A2 53 C6 1D 6E 4E 3C 40 34 01
+7E 90 52 00 0B 20 7E 40 20 00 B0 12 7E 53 5C 0E
+0C DE 8B 4C 00 00 3E 4F 3D 41 30 4D 2C 53 7E 90
+40 00 0B 20 92 53 C4 1D 7E 40 20 00 B0 12 7E 53
+EE 23 1C 53 3E 40 2B 00 E8 3F A2 53 C6 1D 7E 90
+23 00 09 20 3C 40 3B 01 92 53 C4 1D B0 12 24 53
+BB 4F 02 00 DC 3F 7E 90 26 00 02 20 2C 53 F4 3F
+7E 40 28 00 1C 83 B0 12 24 53 BB 4F 02 00 3E 40
+29 00 CB 3F 87 12 A4 47 D6 44 4C 5B 69 4E 3E 4F
+3C 40 00 18 79 90 52 00 05 20 B0 12 7E 53 0E 4C
+3D 41 30 4D 82 43 D8 5F 79 90 23 00 0B 20 92 53
+C4 1D B0 12 24 53 2F 53 3E F0 0F 00 5E 0A 5E 0E
+0C DE ED 3F 79 90 26 00 F2 27 79 90 40 00 12 20
+92 53 C4 1D B0 12 7E 53 E2 23 3E 40 2B 00 92 53
+C4 1D B0 12 7E 53 92 92 C0 1D C4 1D D8 27 92 53
+C4 1D D5 3F 3E 40 28 00 B0 12 24 53 8F 4E 00 00
+3E 40 29 00 B0 12 7E 53 3E 4F 3E F0 0F 00 0C DE
+EA 3F 87 12 A4 47 D6 44 DA 5B 3C 4F 69 4E 3E 40
+20 00 79 90 52 00 BB 27 82 43 D8 5F 79 90 26 00
+08 20 92 53 C4 1D B0 12 24 53 2F 53 3E F0 0F 00
+BF 3F 3E 40 28 00 B0 12 24 53 F7 3F 1B 42 C6 1D
+A2 53 C6 1D 0C 4E 3E 4F 1C D2 D8 5F 82 43 D8 5F
+3C DE 8B 4C 00 00 B2 41 C4 1D 30 4D 76 44 C4 1D
+EA 40 86 40 76 44 2C 00 44 5B D2 5B 0C 5C 3C 42
+B6 54 7C 5A 04 4D 4F 56 58 00 84 12 2C 5C 40 00
+00 40 44 5C 06 4D 4F 56 58 2E 41 00 84 12 2C 5C
+00 00 40 40 54 5C 06 4D 4F 56 58 2E 42 00 84 12
+2C 5C 40 00 40 40 98 5A 04 41 44 44 58 00 84 12
+2C 5C 40 00 00 50 78 5C 06 41 44 44 58 2E 41 00
+84 12 2C 5C 00 00 40 50 88 5C 06 41 44 44 58 2E
+42 00 84 12 2C 5C 40 00 40 50 9A 5C 05 41 44 44
+43 58 84 12 2C 5C 40 00 00 60 AC 5C 07 41 44 44
+43 58 2E 41 84 12 2C 5C 00 00 40 60 BC 5C 07 41
+44 44 43 58 2E 42 84 12 2C 5C 40 00 40 60 A6 5A
+05 53 55 42 43 58 84 12 2C 5C 40 00 00 70 E0 5C
+07 53 55 42 43 58 2E 41 84 12 2C 5C 00 00 40 70
+F0 5C 07 53 55 42 43 58 2E 42 84 12 2C 5C 40 00
+40 70 02 5D 04 53 55 42 58 00 84 12 2C 5C 40 00
+00 80 14 5D 06 53 55 42 58 2E 41 00 84 12 2C 5C
+00 00 40 80 24 5D 06 53 55 42 58 2E 42 00 84 12
+2C 5C 40 00 40 80 B4 5A 04 43 4D 50 58 00 84 12
+2C 5C 40 00 00 90 48 5D 06 43 4D 50 58 2E 41 00
+84 12 2C 5C 00 00 40 90 58 5D 06 43 4D 50 58 2E
+42 00 84 12 2C 5C 40 00 40 90 40 58 05 44 41 44
+44 58 84 12 2C 5C 40 00 00 A0 7C 5D 07 44 41 44
+44 58 2E 41 84 12 2C 5C 00 00 40 A0 8C 5D 07 44
+41 44 44 58 2E 42 84 12 2C 5C 40 00 40 A0 6A 5D
+04 42 49 54 58 00 84 12 2C 5C 40 00 00 B0 B0 5D
+06 42 49 54 58 2E 41 00 84 12 2C 5C 00 00 40 B0
+C0 5D 06 42 49 54 58 2E 42 00 84 12 2C 5C 40 00
+40 B0 D2 5D 04 42 49 43 58 00 84 12 2C 5C 40 00
+00 C0 E4 5D 06 42 49 43 58 2E 41 00 84 12 2C 5C
+00 00 40 C0 F4 5D 06 42 49 43 58 2E 42 00 84 12
+2C 5C 40 00 40 C0 06 5E 04 42 49 53 58 00 84 12
+2C 5C 40 00 00 D0 18 5E 06 42 49 53 58 2E 41 00
+84 12 2C 5C 00 00 40 D0 28 5E 06 42 49 53 58 2E
+42 00 84 12 2C 5C 40 00 40 D0 E6 55 04 58 4F 52
+58 00 84 12 2C 5C 40 00 00 E0 4C 5E 06 58 4F 52
+58 2E 41 00 84 12 2C 5C 00 00 40 E0 5C 5E 06 58
+4F 52 58 2E 42 00 84 12 2C 5C 40 00 40 E0 CE 5C
+04 41 4E 44 58 00 84 12 2C 5C 40 00 00 F0 80 5E
+06 41 4E 44 58 2E 41 00 84 12 2C 5C 00 00 40 F0
+90 5E 06 41 4E 44 58 2E 42 00 84 12 2C 5C 40 00
+40 F0 76 44 C4 1D EA 40 86 40 A4 47 44 5B 0C 5C
+3C 42 0C 56 36 5D 04 52 52 43 58 00 84 12 B2 5E
+40 00 00 10 C6 5E 06 52 52 43 58 2E 41 00 84 12
+B2 5E 00 00 40 10 D6 5E 06 52 52 43 58 2E 42 00
+84 12 B2 5E 40 00 40 10 E8 5E 04 52 52 55 58 00
+84 12 B2 5E 40 01 00 10 FA 5E 06 52 52 55 58 2E
+41 00 84 12 B2 5E 00 01 40 10 0A 5F 06 52 52 55
+58 2E 42 00 84 12 B2 5E 40 01 40 10 1C 5F 05 53
+57 50 42 58 84 12 B2 5E 40 00 80 10 2E 5F 07 53
+57 50 42 58 2E 41 84 12 B2 5E 00 00 80 10 3E 5F
+04 52 52 41 58 00 84 12 B2 5E 40 00 00 11 50 5F
+06 52 52 41 58 2E 41 00 84 12 B2 5E 00 00 40 11
+60 5F 06 52 52 41 58 2E 42 00 84 12 B2 5E 40 00
+40 11 72 5F 04 53 58 54 58 00 84 12 B2 5E 40 00
+80 11 84 5F 06 53 58 54 58 2E 41 00 84 12 B2 5E
+00 00 80 11 FC 57 05 50 55 53 48 58 84 12 B2 5E
+40 00 00 12 A6 5F 07 50 55 53 48 58 2E 41 84 12
+B2 5E 00 00 40 12 B6 5F 07 50 55 53 48 58 2E 42
+84 12 B2 5E 40 00 40 12 00 00 94 5F 03 52 50 54
+87 12 A4 47 D6 44 E8 5F 29 4E 7E 40 20 00 79 90
+52 00 06 20 B0 12 7E 53 03 24 3E D0 80 00 05 3C
+B0 12 24 53 1E 83 3E F0 0F 00 82 4E D8 5F 3E 4F
+3D 41 30 4D 1A 43 25 3C D2 C3 23 02 E2 B2 60 02
+02 24 30 40 E8 50 1A 52 04 20 19 62 06 20 92 43
+14 20 A2 93 02 20 07 24 0A 5A 49 69 82 4A 16 20
+C2 49 18 20 0A 3C C2 4A 15 20 8A 10 C2 4A 16 20
+C2 49 17 20 89 10 C2 49 18 20 B0 12 9C 60 5A 53
+FC 23 39 40 05 00 D2 49 14 20 4E 06 82 93 46 06
+05 24 92 B3 6C 06 FD 27 C2 93 4C 06 59 83 F3 2F
+19 83 0B 30 F2 43 4E 06 82 93 46 06 03 24 92 B3
+6C 06 FD 27 5A 92 4C 06 F3 23 30 41 19 43 3A 43
+8A 10 C2 4A 4E 06 82 93 46 06 05 24 92 B3 6C 06
+FD 27 C2 93 4C 06 19 83 F3 23 5A 42 4C 06 30 41
+1A 52 08 20 09 43 1C D3 F2 40 51 00 19 20 B0 12
+18 60 33 20 B0 12 9C 60 6A 53 04 24 FB 23 D9 42
+4C 06 FF 1D F2 43 4E 06 03 43 19 53 39 90 01 02
+F6 23 F2 43 4E 06 3C C0 03 00 D2 D3 23 02 30 41
+09 43 2C D3 F0 40 58 00 11 BF B0 12 18 60 15 20
+3A 40 FE FF 29 43 B0 12 A0 60 D2 49 00 1E 4E 06
+03 43 19 53 39 90 00 02 F8 23 39 40 03 00 B0 12
+9E 60 7A C0 E1 00 6A 92 DE 27 8C 10 1C 52 4C 06
+D2 D3 23 02 87 12 80 44 0B 3C 20 53 44 20 45 72
+72 6F 72 21 56 61 2F 83 8F 4E 00 00 B2 40 10 00
+DC 1D 0E 4C B0 12 2A 40 24 42 F2 48 92 4B 0E 00
+22 20 92 4B 10 00 24 20 5A 42 23 20 58 42 22 20
+92 93 02 20 08 24 59 42 24 20 89 10 0A 59 88 10
+08 58 0A 6A 88 10 08 58 30 41 82 43 1C 20 92 42
+0E 20 1A 20 C2 93 24 20 03 20 92 93 22 20 14 24
+92 42 22 20 D0 04 92 42 24 20 D2 04 92 42 12 20
+C8 04 92 42 E4 04 1A 20 92 42 E6 04 1C 20 92 52
+10 20 1A 20 82 63 1C 20 30 41 92 4B 0E 00 22 20
+92 4B 10 00 24 20 B0 12 9A 61 5A 4B 03 00 82 5A
+1A 20 82 63 1C 20 30 41 09 93 07 24 F8 90 20 00
+00 1E 03 20 18 53 19 83 F9 23 30 41 1B 42 32 20
+82 43 1E 20 B2 90 00 02 20 20 A8 20 BB 80 00 02
+12 00 8B 73 14 00 DB 53 03 00 DB 92 12 20 03 00
+11 28 CB 43 03 00 B0 12 6C 61 B0 12 C0 60 8B 43
+10 00 9B 48 00 1E 0E 00 92 93 02 20 03 24 9B 48
+02 1E 10 00 B2 40 00 02 20 20 8B 93 14 00 0B 20
+92 9B 12 00 1E 20 82 2C BB 90 00 02 12 00 03 2C
+92 4B 12 00 20 20 B0 12 DA 61 1A 42 1A 20 19 42
+1C 20 21 3F 3C 42 3B 40 38 20 09 43 CB 93 02 00
+10 24 9B 92 24 20 0C 00 04 20 9B 92 22 20 0A 00
+07 24 09 4B 3B 50 1C 00 3B 90 18 21 EF 23 0C 5C
+30 41 0C 43 82 4B 32 20 8B 49 00 00 09 93 0A 24
+99 52 C4 1D 16 00 4A 93 05 34 C9 93 02 00 02 34
+5A 59 02 00 CB 4A 02 00 CB 43 03 00 9B 42 1A 20
+04 00 9B 42 1C 20 06 00 18 42 30 20 8B 48 08 00
+9B 48 1A 1E 0A 00 9B 48 14 1E 0C 00 9B 48 1A 1E
+0E 00 9B 48 14 1E 10 00 9B 48 1C 1E 12 00 9B 48
+1E 1E 14 00 82 43 1E 20 6A 93 5F 27 C9 37 8B 43
+16 00 7A 93 02 24 07 38 95 3F B2 40 1C 21 EC 43
+B2 40 EA 42 50 43 9B 42 C0 1D 18 00 9B 82 C4 1D
+18 00 9B 42 C2 1D 1A 00 9B 52 C4 1D 1A 00 82 3F
+CB 43 02 00 2B 4B 82 4B 32 20 0B 93 06 24 92 4B
+16 00 1E 20 B0 12 54 62 22 C3 30 41 1B 42 32 20
+0B 93 FB 27 EB 93 02 00 04 20 B0 12 C2 67 B0 12
+8A 67 CB 93 02 00 E4 37 1E 4B 18 00 9F 4B 1A 00
+00 00 31 50 06 00 3D 41 B0 12 50 63 02 24 30 40
+24 44 B2 40 3C 1D EC 43 B2 40 52 43 50 43 30 40
+0E 44 9E 4E 85 52 45 41 44 22 5A 43 19 3C 40 4F
+86 57 52 49 54 45 22 00 6A 43 12 3C 06 4E 84 44
+45 4C 22 00 6A 42 0C 3C E4 51 05 43 4C 4F 53 45
+B0 12 6C 63 30 4D F8 52 85 4C 4F 41 44 22 7A 43
+2F 83 8F 4E 00 00 0E 4A 82 93 BE 1D 0A 24 87 12
+76 44 76 44 12 47 12 47 9A 44 76 44 20 64 12 47
+2A 40 87 12 76 44 22 00 E2 44 86 47 1E 64 3D 41
+35 4F 0E 55 82 4E 36 20 1C 43 92 42 2C 20 22 20
+92 42 2E 20 24 20 0E 95 8D 24 F5 90 3A 00 01 00
+01 20 25 53 F5 90 5C 00 00 00 08 20 15 53 92 42
+02 20 22 20 82 43 24 20 0E 95 70 24 82 45 34 20
+B0 12 9A 61 34 40 20 00 A2 93 02 20 04 24 92 92
+22 20 02 20 02 24 14 42 12 20 B0 12 7A 62 2C 43
+0A 43 08 4A 58 0E 08 58 82 48 30 20 C8 93 00 1E
+61 24 39 42 F8 95 00 1E 04 20 18 53 19 83 FA 23
+15 53 F5 90 2E 00 FF FF 19 24 39 50 03 00 B0 12
+F8 61 06 20 F5 90 5C 00 FF FF 29 24 0E 95 27 28
+15 42 34 20 1A 53 3A 90 10 00 DB 23 92 53 1A 20
+82 63 1C 20 14 83 D1 23 2C 42 3C 3C F5 90 2E 00
+FE FF EE 27 B0 12 F8 61 EB 23 39 40 03 00 F8 95
+00 1E 04 20 18 53 19 83 FA 23 09 3C 0E 95 E0 2F
+F5 90 5C 00 FF FF DC 23 B0 12 F8 61 D9 23 18 42
+30 20 92 48 1A 1E 22 20 92 48 14 1E 24 20 F8 B0
+10 00 0B 1E 14 24 82 93 24 20 06 20 82 93 22 20
+03 20 92 42 02 20 22 20 0E 95 8E 2F 92 42 22 20
+2C 20 92 42 24 20 2E 20 8F 43 00 00 03 3C 2A 4F
+B0 12 84 62 34 40 00 40 35 40 0E 40 3A 4F 3E 4F
+0A 93 04 24 7A 93 0D 20 0C 93 01 20 30 4D 87 12
+80 44 0B 3C 20 4F 70 65 6E 45 72 72 6F 72 3C 42
+54 61 1A 93 B6 20 0C 93 F2 23 30 4D B4 63 04 52
+45 41 44 00 2F 83 8F 4E 00 00 1E 42 32 20 B0 12
+0C 62 1E 82 32 20 30 4D 2C 43 12 12 2A 20 18 42
+02 20 08 58 2A 41 82 9A 0A 20 A1 24 B0 12 C0 60
+09 43 28 93 03 24 89 93 02 1E 03 20 89 93 00 1E
+07 24 09 58 39 90 00 02 F4 23 91 53 00 00 EA 3F
+0C 43 6A 41 B9 43 00 1E 28 93 0F 24 B9 40 FF 0F
+02 1E 09 11 8A 10 09 5A 5A 41 01 00 0A 11 09 10
+82 4A 28 20 82 49 26 20 07 3C 09 11 C2 49 26 20
+C2 4A 27 20 82 43 28 20 3A 41 82 4A 2A 20 30 41
+0A 12 1A 52 08 20 B0 12 00 61 3A 41 1A 52 0C 20
+30 40 00 61 F2 B0 40 00 A2 04 29 20 F2 B0 10 00
+A2 04 FC 27 5A 42 B0 04 4A 11 59 42 B4 04 F2 40
+20 00 C0 04 D2 42 B1 04 C8 04 1A 52 E4 04 D2 42
+B5 04 C8 04 19 52 E4 04 D2 42 B2 04 C0 04 B2 40
+00 08 C8 04 1A 52 E4 04 92 42 B6 04 C0 04 B2 80
+BC 07 C0 04 B2 40 00 02 C8 04 19 52 E4 04 30 41
+22 2A 2B 2C 2F 3A 3B 3C 3D 3E 3F 5B 5C 5D 7C 2E
+29 92 06 38 39 80 03 00 B0 12 E0 66 39 40 03 00
+7A 4B C8 4A 00 1E 82 9B 36 20 12 28 0D 12 3D 40
+0F 00 3C 40 90 66 7A 9C F3 27 1D 83 FC 23 3D 41
+6A 9C E6 27 3A 80 21 00 EB 3B 18 53 19 83 E8 23
+09 93 06 24 F8 40 20 00 00 1E 18 53 19 83 FA 23
+30 41 2A 93 D8 20 2C 93 0D 24 0C 93 A7 24 87 12
+80 44 0C 3C 20 57 72 69 74 65 45 72 72 6F 72 00
+3C 42 54 61 B0 12 A8 65 92 42 26 20 22 20 92 42
+28 20 24 20 B0 12 20 66 B0 12 7A 62 18 42 30 20
+F8 40 20 00 0B 1E B0 12 34 66 88 43 0C 1E 88 4A
+0E 1E 88 49 10 1E 88 49 12 1E 98 42 24 20 14 1E
+98 42 22 20 1A 1E 88 43 1C 1E 88 43 1E 1E 1C 43
+1B 42 34 20 82 9B 36 20 CA 27 FB 90 2E 00 00 00
+C6 27 39 40 0B 00 B0 12 B0 66 B0 12 CC 67 2A 43
+B0 12 84 62 0C 93 BB 23 30 4D 1A 4B 04 00 19 4B
+06 00 B0 12 C6 60 B0 12 34 66 18 4B 08 00 88 49
+12 1E 88 4A 16 1E 88 49 18 1E 98 4B 12 00 1C 1E
+98 4B 14 00 1E 1E 1A 4B 04 00 19 4B 06 00 30 40
+02 61 9B 52 1E 20 12 00 8B 63 14 00 1A 42 1A 20
+19 42 1C 20 30 40 02 61 B2 40 00 02 1E 20 1B 42
+32 20 B0 12 C2 67 82 43 1E 20 DB 53 03 00 DB 92
+12 20 03 00 22 20 CB 43 03 00 B0 12 6C 61 08 12
+0A 12 B0 12 A8 65 2A 91 05 24 B0 12 20 66 2A 41
+B0 12 C0 60 3A 41 38 41 98 42 26 20 00 1E 92 93
+02 20 03 24 98 42 28 20 02 1E B0 12 20 66 9B 42
+26 20 0E 00 9B 42 28 20 10 00 30 40 DA 61 C0 63
+05 57 52 49 54 45 B0 12 D8 67 30 4D 58 4B 13 00
+59 4B 14 00 89 10 09 58 58 4B 15 00 5B 42 12 20
+0A 43 3C 42 08 11 09 10 4A 10 1C 83 0B 11 FA 2B
+0A 11 1C 83 FD 37 1B 42 32 20 19 5B 0A 00 18 6B
+0C 00 8B 49 0E 00 8B 48 10 00 CB 4A 03 00 1A 4B
+12 00 BB C0 FF 01 12 00 3A F0 FF 01 82 4A 1E 20
+B0 12 76 62 30 4D 0C 93 38 20 38 90 E0 01 03 2C
+C8 93 20 1E 02 24 7C 40 E5 00 C8 4C 00 1E B0 12
+CC 67 B0 12 78 61 82 4A 2A 20 0B 4A B0 12 C0 60
+1A 48 00 1E 88 43 00 1E 92 93 02 20 09 24 19 48
+02 1E 88 43 02 1E 39 F0 FF 0F 39 90 FF 0F 02 20
+3A 93 0E 24 82 4A 22 20 82 49 24 20 B0 12 78 61
+0B 9A E6 27 0A 12 0A 4B B0 12 20 66 3A 41 DD 3F
+0A 4B B0 12 20 66 B0 12 6C 63 30 4D 38 4C 08 54
+45 52 4D 32 53 44 22 00 87 12 D4 63 76 44 02 00
+02 47 86 47 20 64 38 69 3D 41 92 C3 DC 05 08 43
+B0 12 B6 42 92 B3 DC 05 FD 27 59 42 CC 05 69 92
+0D 24 C8 49 00 1E 18 53 38 90 FF 01 F3 2B 03 24
+B0 12 D8 67 EC 3F B0 12 C8 42 EC 3F B0 12 C8 42
+82 48 1E 20 B0 12 6C 63 30 4D
 @FFFE
-BC 53
+F6 50
 q
index 87c799d..26dbff0 100644 (file)
 @1800
-10 00 08 00 00 D6 E8 03 05 00 18 00 DC 6B 46 4F
-2C 01 FF B3 5A 44 6C 44 FA 62 36 63
+10 00 08 00 00 D6 E8 03 05 00 18 00 68 69 C4 4D
+2D 01 FF B3 B6 42 C8 42 B4 60 F0 60
 @4000
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 40
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 40 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 40 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 40 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 40 02 3E 52 00
-0E 12 3E 4F 30 4D 96 40 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 40 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 40 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 40 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 41 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 40 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 41 02 31 2D 00
-1E 83 30 4D D8 40 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 41
-02 30 3D 00 1E 83 0E 7E 30 4D 60 41 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 41 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 40 01 3E 3E 8F F4 3B EB 37 0E 41 02 42 4C 00
-85 12 20 00 AC 41 04 42 41 53 45 00 85 12 DC 1D
-C8 40 05 53 54 41 54 45 85 12 BE 1D 96 41 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 41 06 55 4D 2F
-4D 4F 44 00 30 12 62 40 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 40 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 41
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 41 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 42
-02 23 53 00 87 12 32 42 6A 42 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 42 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 41 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 41
-02 44 2E 00 87 12 D2 41 44 40 B0 40 4C 41 64 42
-BC 40 A2 42 7E 42 7C 45 44 45 2A 40 DC 41 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 40
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 42 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 40
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A 42
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 42 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 42 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 41 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 43 03 4B 45 59 30 40 A0 43
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 5A 44 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 6C 44 30 4D 0D 12
-3D 40 DE 43 1B 42 32 20 9B 42 1E 20 16 00 3A 4F
-09 4E 0E 43 1C 42 1E 20 1B 42 20 20 02 3C E0 43
-2D 83 0C 9B 14 2C 58 4C 00 1E 1C 53 78 90 20 00
-07 2C 78 90 0A 00 F5 23 82 4C 1E 20 3D 41 30 4D
-0E 99 56 24 CA 48 00 00 1A 53 1E 53 51 3C 1A 15
-B0 12 3E 64 19 17 DE 3F 00 43 06 41 43 43 45 50
-54 00 30 40 26 44 3C 40 C8 44 3B 40 92 44 2D 15
-0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40
-BC 44 92 B3 DC 05 05 24 18 42 CC 05 38 90 0A 00
-04 20 21 53 39 40 80 44 4D 15 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C2 23 02 30 41 B2 40 13 00
-CE 05 E2 D2 23 02 30 41 00 00 05 53 4C 45 45 50
-30 40 84 44 12 D2 0A 18 FB 3F 21 52 3A 17 58 42
-CC 05 48 9C 08 2C 48 9B E9 27 78 92 11 20 2E 9F
-0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00 1E 53
-A2 B3 DC 05 FD 27 82 48 CE 05 30 4D BE 44 2D 83
-92 B3 DC 05 E4 23 FC 27 82 93 DE 1D 02 24 92 53
-DE 1D 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D B0 42
-04 45 4D 49 54 00 30 40 EA 44 08 4E 3E 4F E0 3F
-10 43 03 43 49 42 85 12 3C 1D 3F 80 06 00 8F 4E
-04 00 3E 40 54 00 9F 42 F8 44 00 00 AF 4F 02 00
-88 3F E0 44 04 45 43 48 4F 00 B2 40 82 48 B6 44
-82 43 DE 1D 30 4D E0 42 06 4E 4F 45 43 48 4F 00
-B2 40 30 4D B6 44 92 43 DE 1D 30 4D 9C 42 05 53
-50 41 43 45 2F 83 8F 4E 00 00 3E 40 20 00 CB 3F
-3E 45 06 53 50 41 43 45 53 00 0E 93 09 24 0D 12
-3D 40 66 45 EF 3F 68 45 2D 83 1E 83 EB 23 3D 41
-3E 4F 30 4D 66 43 04 54 59 50 45 00 0E 93 0F 24
-1E 15 3D 40 92 45 28 4F 7E 48 8F 48 00 00 2F 83
-AA 3F 94 45 2D 83 91 83 02 00 F5 23 1D 17 2F 53
-3E 4F 30 4D F2 44 02 43 52 00 30 40 AE 45 87 12
-BA 45 02 0D 0A 00 7C 45 2A 40 2F 82 8F 4E 02 00
-7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63 30 4D 52 45
-82 53 22 00 82 43 B4 1D 87 12 34 40 BA 45 30 48
-34 40 22 00 1E 46 E8 45 3D 41 B2 40 20 00 B4 1D
-6E 4E 1E 83 82 5E C6 1D 3E 4F 92 B3 C6 1D A2 63
-C6 1D 30 4D 28 45 82 2E 22 00 87 12 D4 45 34 40
-7C 45 30 48 2A 40 00 00 04 57 4F 52 44 00 3C 40
-C0 1D 39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 19 24
-7E 9A FC 27 1A 83 3B 40 60 00 C8 4C 00 00 09 9A
-0C 24 7C 4A 4E 9C 09 24 18 53 4B 9C F6 2F 7C 90
-7B 00 F3 2F 5C 82 B4 1D F0 3F 1A 82 C2 1D 82 4A
-C4 1D 1E 42 C6 1D 08 8E CE 48 00 00 30 4D 00 00
-04 46 49 4E 44 00 2F 83 0C 4E 65 4C 74 40 80 00
-3B 40 CA 1D 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
-1E 00 0E 58 2E 53 1E 4E FE FF 0E 93 F3 27 09 4E
-78 49 48 C4 48 95 F7 23 0A 4C FA 99 01 00 F3 23
-1A 53 58 83 FA 23 19 B3 09 63 0C 49 6A 4E 1E 43
-4A 93 01 30 2E 83 8F 4C 00 00 35 40 0E 40 34 40
-00 40 30 4D A2 41 07 3E 4E 55 4D 42 45 52 3C 4F
-38 4F 29 4F 2F 82 1B 42 DC 1D 6A 4C 7A 80 30 00
-7A 90 0A 00 05 28 7A 80 07 00 7A 90 0A 00 12 28
-0A 9B 22 C3 0F 2C 82 49 D0 04 82 48 D2 04 82 4B
-C8 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
-1E 83 E3 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
-30 4D 1B 42 DC 1D 0C 43 2D 15 3D 40 78 47 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90
-2D 00 04 28 CB 23 B1 43 02 00 E1 3F 2B 43 7A 80
-25 00 07 24 3B 52 6A 53 04 24 3B 40 10 00 5A 83
-BC 23 1C 53 1E 83 EA 3F 7A 47 2F 24 2D 83 7A 90
-28 00 CD 27 32 D0 00 02 7A 90 F7 00 C8 27 7A 90
-F5 00 23 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
-09 5C 69 49 79 80 30 00 79 90 0A 00 05 28 79 80
-07 00 79 90 0A 00 0A 28 09 9B 08 2C 8F 49 00 00
-0E 4B 2C 15 B0 12 E8 41 2A 17 E6 3F 9F 4F 04 00
-02 00 AF 4F 04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B
-DC 1D 06 24 32 C0 00 02 3F 50 06 00 0E F3 30 4D
-2F 53 9F 4F 02 00 04 00 BF 4F 00 00 3E E3 09 20
-3E E3 BF E3 02 00 BF E3 00 00 9F 53 02 00 8F 63
-00 00 32 B0 00 02 01 20 2F 53 30 4D 14 45 07 45
-58 45 43 55 54 45 0A 4E 3E 4F 00 4A 26 41 01 2C
-1A 42 C6 1D A2 53 C6 1D 8A 4E 00 00 3E 4F 30 4D
-2E 48 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
-1A 42 C6 1D A2 52 C6 1D BA 40 34 40 00 00 8A 4E
-02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
-02 00 8A 4E 02 00 0E 49 EB 3F 30 4D A6 45 05 43
-4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
-30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
-30 4D 87 12 92 48 B0 41 1E 46 AC 48 3D 40 B4 48
-E2 22 5D 3E B6 48 0A 4E 3E 4F 3D 40 CC 48 39 27
-3D 40 A6 48 1A E2 BE 1D B3 27 AD 23 CE 48 3E 4F
-3D 40 A6 48 BA 23 DE 53 00 00 68 4E 08 5E F8 40
-3F 00 00 00 3D 40 EC 4B CD 3F 1E 48 08 45 56 41
-4C 55 41 54 45 00 39 40 C0 1D 3C 49 3B 49 3A 49
-3D 15 B0 12 2A 40 A2 48 0A 49 B2 41 C4 1D B2 41
-C2 1D B2 41 C0 1D 3D 41 30 4D 82 43 08 18 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 30 4D 7E 48
-04 42 4F 4F 54 00 82 93 08 18 1D 24 E2 B2 60 02
-1A 20 2F 83 8F 4E 00 00 1E 42 08 18 B0 12 2A 40
-30 45 1A 49 BA 45 0F 4C 4F 41 44 22 20 42 4F 4F
-54 2E 34 54 48 22 24 43 82 49 6C 41 04 51 55 49
-54 00 30 40 76 49 B0 12 2A 40 1A 49 AA 45 FA 44
-44 45 A2 48 DE 40 70 41 BA 45 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 DA 49 34 40 30 FF F2 42
-8A 41 BA 45 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-DA 49 24 43 7C 49 1A 44 05 41 42 4F 52 54 3F 40
-80 1C D7 3F B8 49 86 41 42 4F 52 54 22 00 87 12
-D4 45 34 40 DA 49 30 48 2A 40 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 B2 51 1B 42 32 20 0B 93
-04 24 CB 43 02 00 2B 4B FA 3F B0 12 5A 44 92 C3
-DC 05 38 40 AA 0A 39 42 09 59 03 43 19 83 FD 23
-18 83 F9 23 92 B3 DC 05 F2 23 87 12 26 51 34 40
-DE 1D F2 40 1A 45 BA 45 04 1B 5B 37 6D 00 7C 45
-54 40 28 43 46 4A AA 45 BA 45 05 6C 69 6E 65 3A
-7C 45 40 41 D2 42 7C 45 BA 45 04 1B 5B 30 6D 00
-7C 45 BE 49 00 00 83 5B 27 5D 87 12 6C 4A 34 40
-34 40 30 48 30 48 2A 40 70 46 01 27 87 12 B0 41
-1E 46 76 46 28 43 7A 4A 2A 40 D6 48 CE 41 81 5C
-92 42 C0 1D C4 1D 30 4D 56 4A 81 5B 82 43 BE 1D
-30 4D 7E 4A 01 5D B2 43 BE 1D 30 4D BE 4F 02 00
-3E 4F 30 4D 72 43 82 49 53 00 87 12 C8 41 F2 40
-28 43 BE 4A 5A 4A 34 40 9C 4A 30 48 2A 40 6C 4A
-9C 4A 2A 40 A6 4A 09 49 4D 4D 45 44 49 41 54 45
-1A 42 B6 1D FA D0 80 00 00 00 30 4D D0 45 87 52
-45 43 55 52 53 45 19 42 C6 1D 99 42 BA 1D 00 00
-A2 53 C6 1D 30 4D 6C 49 88 50 4F 53 54 50 4F 4E
-45 00 87 12 B0 41 1E 46 76 46 54 40 28 43 7A 4A
-70 41 28 43 22 4B 34 40 34 40 30 48 30 48 34 40
-30 48 30 48 2A 40 8A 4A 81 3B 82 93 BE 1D A8 27
-87 12 34 40 2A 40 30 48 C0 4B 8C 4A 2A 40 28 4B
-07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E 00 00 1E 42
-C6 1D 0A 4E 39 40 00 02 38 40 02 02 B0 12 AC 4B
-BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 82 4F
-BC 1D 30 4D 40 4B 01 3A 30 12 60 4B 87 12 FA 45
-B0 41 1E 46 86 4B 3D 41 08 4E 7A 4E 5A D3 5A 53
-0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E 3E 4F
-BA 40 30 40 00 00 BA 40 72 4B 02 00 82 48 B6 1D
-82 49 B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D 30 41
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 40
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 40
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 40
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 40 02 3E 52 00 0E 12 3E 4F 30 4D 70 40 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 40 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 40 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 40
+01 21 BE 4F 00 00 3E 4F 30 4D CC 40 02 30 3D 00
+1E 83 0E 7E 30 4D FC 40 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 41 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 40 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 41 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 41 02 23 53 00 87 12 88 41 C0 41
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 41
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 40 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 41 34 40 86 40 D4 40 BA 41
+92 40 F8 41 D4 41 38 44 A4 47 E0 43 2A 40 22 41
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 41 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 42 18 42 CC 05 2F 83 8F 4E
+00 00 B0 12 B6 42 92 B3 DC 05 FD 27 1E 42 CC 05
+B0 12 C8 42 30 4D A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C2 23 02 30 41 B2 40 13 00 CE 05 E2 D2
+23 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 42
+B0 12 B6 42 12 D2 0A 18 F9 3F 0D 12 3D 40 0A 43
+1B 42 32 20 9B 42 1E 20 16 00 3A 4F 09 4E 0E 43
+1C 42 1E 20 1B 42 20 20 02 3C 0C 43 2D 83 0C 9B
+14 2C 58 4C 00 1E 1C 53 78 90 20 00 07 2C 78 90
+0A 00 F5 23 82 4C 1E 20 3D 41 30 4D 0E 99 3D 24
+CA 48 00 00 1A 53 1E 53 38 3C 1A 15 B0 12 FA 61
+19 17 DE 3F F0 40 06 41 43 43 45 50 54 00 30 40
+52 43 3C 40 C2 43 3B 40 8C 43 2D 15 0A 4E 2E 4F
+0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 B6 43 92 B3
+DC 05 05 24 18 42 CC 05 38 90 0A 00 9C 23 21 53
+3D 15 AC 3F 21 52 3A 17 58 42 CC 05 48 9C 08 2C
+48 9B 9A 27 78 92 11 20 2E 9F 0F 24 1E 83 05 3C
+0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 DC 05 FD 27
+82 48 CE 05 30 4D B8 43 2D 83 92 B3 DC 05 E4 23
+FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F 3D 41
+B2 40 18 00 0A 18 30 4D 9E 40 04 45 4D 49 54 00
+30 40 E4 43 08 4E 3E 4F E0 3F 85 12 3C 1D 3F 80
+06 00 8F 4E 04 00 3E 40 54 00 9F 42 EC 43 00 00
+AF 4F 02 00 A4 3F DA 43 04 45 43 48 4F 00 B2 40
+82 48 B0 43 82 43 DE 1D 30 4D 32 42 06 4E 4F 45
+43 48 4F 00 B2 40 30 4D B0 43 92 43 DE 1D 30 4D
+20 42 04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40
+4E 44 28 4F 7E 48 8F 48 00 00 2F 83 C9 3F 50 44
+2D 83 91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D
+D0 41 02 43 52 00 30 40 6A 44 87 12 80 44 02 0D
+0A 00 38 44 2A 40 2F 83 8F 4E 00 00 3E 4D 30 4D
+2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
+0D 63 30 4D F2 41 82 53 22 00 82 43 B4 1D 87 12
+76 44 80 44 12 47 76 44 22 00 E2 44 AE 44 B2 40
+20 00 B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41
+3E 4F 30 4D 1C 44 82 2E 22 00 87 12 9A 44 76 44
+38 44 12 47 2A 40 48 43 05 3C 00 00 04 57 4F 52
+44 00 48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52
+C4 1D 09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20
+0E 4A 1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D
+3B 40 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C
+09 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82
+B4 1D F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D
+08 8E CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00
+2F 83 0C 4E 65 4C 74 40 80 00 3B 40 CA 1D 3E 4B
+0E 93 1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53
+1E 4E FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95
+F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23
+19 B3 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83
+8F 4C 00 00 35 40 0E 40 34 40 00 40 30 4D 82 40
+07 3E 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82
+1B 42 DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28
+7A 80 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C
+82 49 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04
+18 42 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C
+00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02
+1B 42 DC 1D 0C 43 2D 15 3D 40 56 46 09 43 08 43
+3F 82 8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00
+04 28 C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00
+07 24 3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23
+1C 53 1E 83 EA 3F 58 46 2F 24 2D 83 7A 90 28 00
+CB 27 32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00
+23 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C
+69 49 79 80 30 00 79 90 0A 00 05 28 79 80 07 00
+79 90 0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E 41 2A 17 E6 3F 9F 4F 04 00 02 00
+AF 4F 04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D
+06 24 32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53
+9F 4F 02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3
+BF E3 02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00
+32 B0 00 02 01 20 2F 53 30 4D 7E 42 04 48 45 52
+45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 40
+01 2C 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F
+30 4D 46 43 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F
+30 4D 08 44 07 45 58 45 43 55 54 45 0A 4E 3E 4F
+00 4A 10 47 87 4C 49 54 45 52 41 4C 82 93 BE 1D
+0C 24 1A 42 C6 1D A2 52 C6 1D BA 40 76 44 00 00
+8A 4E 02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24
+19 4A 02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 62 44
+05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E
+FF FF 30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43
+C4 1D 30 4D 85 12 20 00 87 12 94 47 A4 47 E2 44
+B2 47 3D 40 BA 47 CC 22 82 3E BC 47 0A 4E 3E 4F
+3D 40 D2 47 23 27 3D 40 AC 47 1A E2 BE 1D A1 27
+B5 23 D4 47 3E 4F 3D 40 AC 47 B8 23 DE 53 00 00
+68 4E 08 5E F8 40 3F 00 00 00 3D 40 CC 4A CB 3F
+34 47 08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D
+3C 49 3B 49 3A 49 3D 15 B0 12 2A 40 A8 47 10 48
+B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D
+85 12 BE 1D 82 43 08 18 31 40 E0 1C B2 40 00 1C
+00 1C 82 43 BE 1D 30 4D 80 47 04 42 4F 4F 54 00
+82 93 08 18 1D 24 E2 B2 60 02 1A 20 2F 83 8F 4E
+00 00 1E 42 08 18 B0 12 2A 40 24 44 24 48 80 44
+0F 4C 4F 41 44 22 20 42 4F 4F 54 2E 34 54 48 22
+3C 42 8E 48 08 41 04 51 55 49 54 00 30 40 80 48
+B0 12 2A 40 24 48 66 44 EE 43 A4 47 E0 43 A8 47
+A4 40 0C 41 80 44 0C 73 74 61 63 6B 20 65 6D 70
+74 79 21 00 E6 48 76 44 30 FF 02 47 26 41 80 44
+0A 46 52 41 4D 20 66 75 6C 6C 21 00 E6 48 3C 42
+86 48 24 47 05 41 42 4F 52 54 3F 40 80 1C D6 3F
+C4 48 86 41 42 4F 52 54 22 00 87 12 9A 44 76 44
+E6 48 12 47 2A 40 8F 93 02 00 03 20 2F 52 3E 4F
+30 4D B0 12 EC 4E B0 12 B6 42 92 C3 DC 05 38 40
+AA 0A 39 42 03 43 19 83 FD 23 18 83 FA 23 92 B3
+DC 05 F3 23 87 12 60 4E 76 44 DE 1D EA 40 0E 44
+80 44 04 1B 5B 37 6D 00 38 44 58 40 40 42 40 49
+66 44 80 44 05 6C 69 6E 65 3A 38 44 D0 40 24 42
+38 44 80 44 04 1B 5B 30 6D 00 38 44 CA 48 00 00
+83 5B 27 5D 87 12 66 49 76 44 76 44 12 47 12 47
+2A 40 4A 45 01 27 87 12 A4 47 E2 44 50 45 40 42
+74 49 2A 40 DC 47 32 41 81 5C 92 42 C0 1D C4 1D
+30 4D 50 49 81 5B 82 43 BE 1D 30 4D 78 49 01 5D
+B2 43 BE 1D 30 4D BE 4F 02 00 3E 4F 30 4D FC 46
+82 49 53 00 87 12 20 48 EA 40 40 42 B8 49 54 49
+76 44 96 49 12 47 2A 40 66 49 96 49 2A 40 A0 49
+09 49 4D 4D 45 44 49 41 54 45 1A 42 B6 1D FA D0
+80 00 00 00 30 4D 76 48 88 50 4F 53 54 50 4F 4E
+45 00 87 12 A4 47 E2 44 50 45 58 40 40 42 74 49
+0C 41 40 42 02 4A 76 44 76 44 12 47 12 47 76 44
+12 47 12 47 2A 40 84 49 81 3B 82 93 BE 1D B5 27
+87 12 76 44 2A 40 12 47 A0 4A 86 49 2A 40 08 4A
+07 3A 4E 4F 4E 41 4D 45 30 12 46 4A 2F 83 8F 4E
+00 00 1E 42 C6 1D 1E B3 0E 63 0A 4E 39 40 00 02
+38 40 02 02 21 3C BA 40 87 12 FC FF A2 83 C6 1D
+B2 43 BE 1D 30 4D 20 4A 01 3A 30 12 46 4A 92 B3
+C6 1D A2 63 C6 1D 87 12 A4 47 E2 44 6E 4A 3D 41
+08 4E 7A 4E 5A D3 5A 53 0A 58 19 42 DA 1D 6E 4E
+3E F0 1E 00 09 5E 3E 4F 82 48 B6 1D 82 49 B8 1D
+82 4A BA 1D 82 4F BC 1D 2A 52 82 4A C6 1D 30 41
 82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D A8 49
-FE FF 89 48 00 00 30 4D 87 12 BA 45 0F 73 74 61
-63 6B 20 6D 69 73 6D 61 74 63 68 21 E6 49 18 46
-08 56 41 52 49 41 42 4C 45 00 B0 12 7C 4B BA 40
-86 12 FC FF E4 3F 30 49 08 43 4F 4E 53 54 41 4E
-54 00 B0 12 7C 4B BA 40 85 12 FC FF 8A 4E FE FF
-3E 4F D5 3F 08 4C 06 43 52 45 41 54 45 00 B0 12
-7C 4B BA 40 85 12 FC FF 8A 4A FE FF C8 3F EC 48
-05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00
-8A 4D 02 00 3D 41 30 4D 40 4C 05 44 45 46 45 52
-30 12 CE 4B 8B 3F D6 46 05 3E 42 4F 44 59 2E 52
-30 4D 26 4C 04 43 4F 44 45 00 B0 12 7C 4B 2A 82
-82 4A C6 1D 87 12 6E 4B 50 4F 22 4F 2A 40 74 4C
-07 43 4F 44 45 4E 4E 4D 87 12 48 4B 8C 4A 7E 4C
-2A 40 00 00 07 45 4E 44 43 4F 44 45 87 12 6A 4F
-C0 4B 2A 40 C6 49 03 41 53 4D 92 42 DA 1D EC 1D
-B2 40 26 4F DA 1D D9 3F A4 4C 06 45 4E 44 41 53
-4D 00 92 42 EC 1D DA 1D E9 3F 00 00 05 43 4F 4C
-4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53 C6 1D
-B2 43 BE 1D 30 40 6A 4F 00 00 05 4C 4F 32 48 49
-1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A 40 02 00
-A2 52 C6 1D ED 3F C6 4A 85 48 49 32 4C 4F 87 12
-F2 42 48 4D 30 48 8C 4A 50 4F 22 4F 2A 40 18 4D
-82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D A2 52
-C6 1D BE 40 28 43 00 00 2E 53 30 4D 5A 4C 84 45
-4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40 24 43
-FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D 76 45 84 54
-48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D 90 4C
-85 42 45 47 49 4E 30 40 F2 42 6E 4D 85 55 4E 54
-49 4C 39 40 28 43 A2 52 C6 1D 1A 42 C6 1D 8A 49
-FC FF 8A 4E FE FF 3E 4F 30 4D B6 4C 85 41 47 41
-49 4E 39 40 24 43 EF 3F F0 4B 85 57 48 49 4C 45
-87 12 34 4D 78 40 2A 40 DE 4A 86 52 45 50 45 41
-54 00 87 12 B2 4D 74 4D 2A 40 4E 4D 82 44 4F 00
-2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D BE 40
-3C 43 FE FF A2 53 00 1C 1A 42 00 1C 8A 43 00 00
-30 4D 42 48 84 4C 4F 4F 50 00 39 40 5E 43 A2 52
-C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF 1E 42
-00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A 00 00
-F6 3F 3E 4F 30 4D 98 43 85 2B 4C 4F 4F 50 39 40
-4C 43 E5 3F 04 4E 85 4C 45 41 56 45 1A 42 C6 1D
-BA 40 6E 43 00 00 BA 40 24 43 02 00 B2 50 06 00
-C6 1D A2 53 00 1C 2A 52 19 42 00 1C 89 4A 00 00
-30 4D 46 4E 04 4D 4F 56 45 00 0A 4E 38 4F 39 4F
-3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49 00 00
-18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83 18 83
-E8 49 00 00 1A 83 FA 23 30 4D BA 4D 0A 56 4F 43
-41 42 55 4C 41 52 59 00 87 12 2E 4C 34 40 10 00
-34 40 00 00 3C 43 34 40 00 00 30 48 5E 43 C6 4E
-F2 42 34 40 C8 1D 44 40 F2 40 30 48 FA 40 46 4C
-34 40 CA 1D FA 40 2A 40 6A 4A 05 46 4F 52 54 48
-84 12 E0 4E 4A 4F 0C 66 00 66 EA 4E 30 4D 38 4E
-1A 66 7A 4F 4A 51 8A 6A 80 6B 7C 6A 00 00 88 50
-94 4A 68 4C 00 00 AC 4D 09 41 53 53 45 4D 42 4C
-45 52 84 12 E0 4E DA 60 72 60 D6 5F 68 5B 10 5A
-8C 5B 9E 5E 00 00 00 62 12 62 68 5A A6 5A A6 60
-00 00 00 00 9A 5B 14 4F 18 4F 04 41 4C 53 4F 00
-3A 40 0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F F8 4A
-08 50 52 45 56 49 4F 55 53 00 3A 40 0E 00 39 40
-CC 1D 38 40 CA 1D 8A 3F 06 46 04 4F 4E 4C 59 00
-82 43 CC 1D 30 4D DC 4D 0B 44 45 46 49 4E 49 54
-49 4F 4E 53 92 42 CA 1D DA 1D 30 4D 80 4D 07 43
-4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53 F9 98
-FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D 76 4B
-86 5B 54 48 45 4E 5D 00 30 4D D0 4F 86 5B 45 4C
-53 45 5D 00 87 12 34 40 00 00 36 41 B0 41 1E 46
-84 48 44 40 28 43 4A 50 8A 40 8A 40 BA 45 06 5B
-54 48 45 4E 5D 00 A6 4F 32 43 18 50 9E 45 40 41
-54 40 32 43 EC 4F 2A 40 8A 40 8A 40 BA 45 06 5B
-45 4C 53 45 5D 00 A6 4F 32 43 38 50 9E 45 40 41
-54 40 32 43 EA 4F 2A 40 BA 45 04 5B 49 46 5D 00
-A6 4F 32 43 EC 4F 24 43 EA 4F 9E 45 BA 45 05 0D
-0A 6B 6F 20 7C 45 FA 44 92 48 24 43 EC 4F DC 4F
-84 5B 49 46 5D 00 0E 93 3E 4F BC 27 30 4D 60 50
-89 5B 44 45 46 49 4E 45 44 5D 87 12 B0 41 1E 46
-76 46 6C 40 2A 40 70 50 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 87 12 B0 41 1E 46 76 46 6C 40 64 41
-2A 40 A4 50 3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F
-44 3C 74 4E 06 4D 41 52 4B 45 52 00 B0 12 7C 4B
-BA 40 84 12 FC FF BA 40 A2 50 FE FF 9A 42 C8 1D
-00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40 C6 4B
-F0 4E 80 4F 94 4F E8 50 3A 4E 82 4A C8 1D 2E 4E
-82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83 18 48
-FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23 2A 4A
-0A 93 F0 23 3E 4F 3D 41 30 4D 60 4F 09 50 57 52
-5F 53 54 41 54 45 84 12 E0 50 46 4F DC 6B CA 4D
-09 52 53 54 5F 53 54 41 54 45 92 42 0E 18 2A 51
-92 42 0C 18 2C 51 EF 3F 1C 51 08 50 57 52 5F 48
-45 52 45 00 92 42 C8 1D 2A 51 92 42 C6 1D 2C 51
-30 4D 30 51 08 52 53 54 5F 48 45 52 45 00 92 42
-C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F AC 4E 04 57
-49 50 45 00 39 40 10 00 29 83 B9 43 80 FF FC 23
-B2 40 84 44 82 44 B2 40 0C 52 0A 52 B2 40 76 49
-74 49 B2 40 46 4F 0E 18 B2 40 DC 6B 0C 18 30 12
-3A 51 B2 40 EA 44 E8 44 B2 40 AE 45 AC 45 B2 40
-A0 43 9E 43 B2 40 26 44 24 44 B2 40 3C 1D F8 44
-B2 40 18 00 0A 18 37 40 1A 40 36 40 BC 40 35 40
-0E 40 34 40 00 40 39 40 10 00 29 83 89 43 E0 1D
-FC 23 B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41
-7E 51 04 57 41 52 4D 00 30 40 0C 52 3D 40 5A 53
-92 C3 30 01 1E 42 08 18 0E 93 9E 24 D2 B3 01 02
-02 20 3E E3 1E 53 F2 D0 03 00 0D 02 E2 B2 60 02
-8A 20 39 42 B0 12 D2 62 D2 C3 23 02 2C 42 B2 40
-95 00 14 20 B2 40 00 40 18 20 B0 12 48 62 02 24
-30 40 6E 63 B0 12 D0 62 7A 93 FC 23 B2 40 87 AA
-14 20 92 43 16 20 B2 40 00 48 18 20 B0 12 48 62
-29 42 B0 12 D2 62 92 43 14 20 82 43 16 20 78 43
-3C 42 B2 40 00 77 18 20 B0 12 48 62 B2 40 40 69
-18 20 B0 12 8E 62 03 24 58 83 F3 23 D9 3F 0C 5C
-A2 43 16 20 B2 40 00 50 18 20 B0 12 8E 62 D0 23
-92 D3 40 06 82 43 46 06 92 C3 40 06 B0 12 F8 62
-38 40 00 1E 92 48 C6 01 04 20 92 48 C8 01 06 20
-5A 48 C2 01 92 43 02 20 7A 80 06 00 0F 24 7A 82
-0D 24 A2 43 02 20 6A 53 09 24 5A 53 07 24 6A 52
-05 24 3A 50 0B 20 0C 4A 30 40 74 63 B0 12 F8 62
-D2 48 0D 00 12 20 19 48 0E 00 82 49 08 20 1A 48
-16 00 0A 93 02 20 1A 48 24 00 82 4A 0A 20 09 5A
-82 49 0C 20 09 5A A2 93 02 20 04 24 82 49 0E 20
-39 50 20 00 19 82 12 20 19 82 12 20 82 49 10 20
-92 42 02 20 2C 20 3E 90 0A 00 1C 27 3E 90 16 00
-19 2F 2E 93 E8 26 F1 2E 30 4D BA 45 06 0D 1B 5B
-37 6D 23 00 7C 45 E2 42 BA 45 1F 46 61 73 74 46
-6F 72 74 68 20 56 33 30 30 20 28 43 29 4A 2E 4D
-2E 54 68 6F 6F 72 65 6E 73 20 7C 45 34 40 80 FF
-F2 42 28 41 D2 42 BA 45 0B 62 79 74 65 73 20 66
-72 65 65 20 24 43 46 4A 9E 4F 04 43 4F 4C 44 00
-92 B3 CA 05 FD 23 B2 40 04 A5 20 01 B2 40 88 5A
-5C 01 B2 D0 03 00 04 02 B2 40 FC FF 02 02 B2 C0
-03 00 06 02 B2 43 26 02 B2 43 22 02 E2 D2 25 02
-B2 43 42 02 B2 D3 46 02 B2 43 62 02 B2 D3 66 02
-F2 43 26 03 F2 D3 22 03 F2 40 A5 00 61 01 82 43
-62 01 82 43 66 01 39 40 10 00 B2 40 33 00 64 01
-D2 43 61 01 92 D2 9E 01 08 18 38 40 59 14 18 83
-FE 23 19 83 FA 23 F2 D0 10 00 2A 03 F2 40 A5 00
-A1 04 F2 C0 40 00 A2 04 B2 42 B0 01 39 40 00 10
-29 83 89 43 00 1C FC 23 39 40 4C 00 29 83 B9 40
-BC 53 B4 FF FB 23 B2 40 8A 44 F0 FF B2 40 81 00
-C0 05 92 42 02 18 C6 05 92 42 04 18 C8 05 92 C3
-C0 05 92 D3 DA 05 B2 40 81 A9 40 06 B2 40 03 00
-46 06 D2 D3 25 02 B2 D0 C0 04 0C 02 92 C3 40 06
-3F 40 80 1C 31 40 E0 1C 30 12 08 52 99 3E 38 40
-C0 1D 39 48 2A 48 09 5A 1A 52 C4 1D 09 9A 03 24
-7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A C4 1D 30 4D
-64 51 09 32 43 4F 4E 53 54 41 4E 54 87 12 2E 4C
-30 48 30 48 46 4C D8 54 2F 83 9F 4E 02 00 00 00
-2E 4E 3D 41 30 4D C2 54 09 32 56 41 52 49 41 42
-4C 45 87 12 2E 4C 34 40 04 00 06 43 46 4C 2A 40
-1C 15 B0 12 2A 40 1E 46 76 46 32 43 16 55 32 47
-28 43 7A 4A 4E 55 18 55 29 4E 39 90 86 12 02 20
-2E 53 15 3C 39 90 85 12 03 20 1E 4E 02 00 0F 3C
-39 90 84 12 0C 20 2E 52 B9 90 D6 54 02 00 04 24
-B9 90 FE 54 02 00 03 20 B0 12 D8 54 4E 55 1B 17
-30 41 32 B0 00 02 01 24 3E 4F 30 41 3E 40 28 00
-B0 12 00 55 B0 12 52 55 19 42 C6 1D A2 53 C6 1D
-89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 1D 92 53
-C4 1D B0 12 2A 40 1E 46 32 47 28 43 9A 55 90 55
-21 53 3E 90 10 00 87 2D DA 2B 9C 55 B2 41 C4 1D
-D6 3F 87 12 B0 41 9E 54 AA 55 0C 43 1B 42 C6 1D
-A2 53 C6 1D 6A 4E 3E 4F 7A 90 23 00 2F 20 92 53
-C4 1D B0 12 00 55 B0 12 52 55 0E 93 03 20 3C 40
-00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C 2E 93
-03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40 20 02
-12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93 03 20
-3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 1D A2 53
-C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00
-09 20 3C 40 10 02 92 53 C4 1D B0 12 00 55 B0 12
-52 55 EB 3F 7A 90 40 00 16 20 3C 40 20 00 92 53
-C4 1D B0 12 78 55 0C 20 3C 50 10 00 3E 40 2B 00
-B0 12 78 55 92 92 C0 1D C4 1D 02 24 92 53 C4 1D
-8E 10 0C 5E D8 3F B0 12 78 55 FA 23 3C 50 10 00
-B0 12 5C 55 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D
-87 12 B0 41 9E 54 88 56 FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C6 3F B0 12 78 55 E1 23
-3C 50 80 00 B0 12 5C 55 DC 3F 7A 44 04 52 45 54
-49 00 87 12 34 40 00 13 30 48 2A 40 34 40 2C 00
-A2 55 80 56 C6 56 2E 4E 0E DC 09 4B A2 3F FA 4C
-03 4D 4F 56 84 12 BC 56 00 40 D0 56 05 4D 4F 56
-2E 42 84 12 BC 56 40 40 00 00 03 41 44 44 84 12
-BC 56 00 50 EA 56 05 41 44 44 2E 42 84 12 BC 56
-40 50 F6 56 04 41 44 44 43 00 84 12 BC 56 00 60
-04 57 06 41 44 44 43 2E 42 00 84 12 BC 56 40 60
-AC 56 04 53 55 42 43 00 84 12 BC 56 00 70 22 57
-06 53 55 42 43 2E 42 00 84 12 BC 56 40 70 30 57
-03 53 55 42 84 12 BC 56 00 80 40 57 05 53 55 42
-2E 42 84 12 BC 56 40 80 DC 4C 03 43 4D 50 84 12
-BC 56 00 90 5A 57 05 43 4D 50 2E 42 84 12 BC 56
-40 90 CA 4C 04 44 41 44 44 00 84 12 BC 56 00 A0
-74 57 06 44 41 44 44 2E 42 00 84 12 BC 56 40 A0
-66 57 03 42 49 54 84 12 BC 56 00 B0 92 57 05 42
-49 54 2E 42 84 12 BC 56 40 B0 9E 57 03 42 49 43
-84 12 BC 56 00 C0 AC 57 05 42 49 43 2E 42 84 12
-BC 56 40 C0 B8 57 03 42 49 53 84 12 BC 56 00 D0
-C6 57 05 42 49 53 2E 42 84 12 BC 56 40 D0 00 00
-03 58 4F 52 84 12 BC 56 00 E0 E0 57 05 58 4F 52
-2E 42 84 12 BC 56 40 E0 12 57 03 41 4E 44 84 12
-BC 56 00 F0 FA 57 05 41 4E 44 2E 42 84 12 BC 56
-40 F0 B0 41 A2 55 18 58 0A 4C 3C F0 70 00 8A 10
-3A F0 0F 00 0C DA 4F 3F 4C 57 03 52 52 43 84 12
-12 58 00 10 2A 58 05 52 52 43 2E 42 84 12 12 58
-40 10 36 58 04 53 57 50 42 00 84 12 12 58 80 10
-44 58 03 52 52 41 84 12 12 58 00 11 52 58 05 52
-52 41 2E 42 84 12 12 58 40 11 5E 58 03 53 58 54
-84 12 12 58 80 11 00 00 04 50 55 53 48 00 84 12
-12 58 00 12 78 58 06 50 55 53 48 2E 42 00 84 12
-12 58 40 12 D2 57 04 43 41 4C 4C 00 84 12 12 58
-80 12 1A 53 0E 4A 87 12 E2 42 BA 45 0D 6F 75 74
-20 6F 66 20 62 6F 75 6E 64 73 E6 49 B0 41 9E 54
-C2 58 92 53 C4 1D 3E 40 2C 00 B0 12 2A 40 1E 46
-32 47 28 43 7A 4A 76 56 DA 58 0A 4E 3E 4F 1A 83
-E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
-08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F
-8A 10 5A 06 8F 3F 6C 58 06 52 52 43 4D 2E 41 00
-84 12 BC 58 40 00 08 59 04 52 52 43 4D 00 84 12
-BC 58 50 00 18 59 06 52 52 41 4D 2E 41 00 84 12
-BC 58 40 01 26 59 04 52 52 41 4D 00 84 12 BC 58
-50 01 36 59 06 52 4C 41 4D 2E 41 00 84 12 BC 58
-40 02 44 59 04 52 4C 41 4D 00 84 12 BC 58 50 02
-54 59 06 52 52 55 4D 2E 41 00 84 12 BC 58 40 03
-62 59 04 52 52 55 4D 00 84 12 BC 58 50 03 86 58
-07 50 55 53 48 4D 2E 41 84 12 BC 58 00 14 80 59
-05 50 55 53 48 4D 84 12 BC 58 00 15 90 59 06 50
-4F 50 4D 2E 41 00 84 12 BC 58 00 16 9E 59 04 50
-4F 50 4D 00 84 12 BC 58 00 17 85 12 00 3C 72 59
-03 53 3E 3D 85 12 00 38 C0 59 02 53 3C 00 85 12
-00 34 AE 59 03 30 3E 3D 85 12 00 30 D4 59 02 30
-3C 00 85 12 00 30 00 00 02 55 3C 00 85 12 00 2C
-E8 59 03 55 3E 3D 85 12 00 28 DE 59 03 30 3C 3E
-85 12 00 24 FC 59 02 30 3D 00 85 12 00 20 00 00
-02 49 46 00 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D
-0E 4A 30 4D F2 59 04 54 48 45 4E 00 1A 42 C6 1D
-08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
-31 2F 88 DA 00 00 30 4D 82 57 04 45 4C 53 45 00
-1A 42 C6 1D BA 40 00 3C 00 00 A2 53 C6 1D 2F 83
-8F 4A 00 00 E3 3F 26 5A 05 55 4E 54 49 4C 3A 4F
-08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11 3A 90
-00 FE 10 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
-C6 1D 30 4D 06 58 05 41 47 41 49 4E 87 12 BA 59
-6E 5A 2A 40 00 00 05 57 48 49 4C 45 87 12 14 5A
-78 40 2A 40 CA 59 06 52 45 50 45 41 54 00 87 12
-BA 59 6E 5A 2C 5A 2A 40 CA 5A 3D 41 2E 4E 08 4E
-3E 4F 2A 48 0A 93 88 43 00 00 CA 23 98 42 C6 1D
-00 00 30 4D 96 58 03 42 57 31 84 12 C8 5A E0 1D
-E6 5A 03 42 57 32 84 12 C8 5A E2 1D F2 5A 03 42
-57 33 84 12 C8 5A E4 1D 0A 5B 3D 41 1A 42 C6 1D
-2E 4E 28 4E 08 93 8E 43 00 00 8B 23 BA 4F 00 00
-A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
-57 31 84 12 08 5B E6 1D 2E 5B 03 46 57 32 84 12
-08 5B E8 1D 3A 5B 03 46 57 33 84 12 08 5B EA 1D
-3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10 02 24
-3E E0 00 08 30 4D 46 5B 04 47 4F 54 4F 00 87 12
-BA 59 6C 4A 26 48 2A 40 00 00 05 3F 47 4F 54 4F
-87 12 50 5B 6C 4A 26 48 2A 40 00 00 03 4A 4D 50
-87 12 6C 4A 9C 5A 2A 40 7A 5B 04 3F 4A 4D 50 00
-87 12 50 5B 6C 4A 78 40 6E 5A 2A 40 87 12 B0 41
-9E 54 B4 5B 69 4E 3E 4F 3C 4F 2C 4C 1B 42 C6 1D
-A2 53 C6 1D 79 90 52 00 0A 20 B0 12 78 55 5E 0E
-5E 0E 0E DC 8B 4E 00 00 0E 4B 3D 41 30 4D 79 90
-23 00 0D 20 3C C0 40 00 92 53 C4 1D A2 53 C6 1D
-B0 12 00 55 BB 4F 02 00 3E F0 0F 00 E8 3F 79 90
-26 00 03 20 3C E0 E0 00 EF 3F 3C C0 F0 00 79 90
-40 00 12 20 92 53 C4 1D B0 12 78 55 D8 23 3C D0
-10 00 3E 40 2B 00 B0 12 78 55 92 92 C0 1D C4 1D
-CE 27 92 53 C4 1D CB 3F 3C D0 30 00 A2 53 C6 1D
-3E 40 28 00 B0 12 00 55 BB 4F 02 00 3E 40 29 00
-EA 3F 87 12 B0 41 9E 54 5A 5C 3B 4F 2C 4B 69 4E
-7E 40 20 00 79 90 52 00 03 20 B0 12 78 55 B1 3F
-3C C0 F0 00 A2 53 C6 1D 79 90 26 00 09 20 3C D0
-60 00 92 53 C4 1D B0 12 00 55 BB 4F 02 00 A1 3F
-3C D0 70 00 3E 40 28 00 B0 12 00 55 BB 4F 02 00
-3E 40 29 00 E2 3F 34 40 2C 00 AC 5B 52 5C 62 40
-2A 40 DC 56 04 4D 4F 56 41 00 84 12 A6 5C C0 00
-FE 5A 04 43 4D 50 41 00 84 12 A6 5C D0 00 96 5A
-04 41 44 44 41 00 84 12 A6 5C E0 00 B6 5A 04 53
-55 42 41 00 84 12 A6 5C F0 00 C2 5C 05 43 41 4C
-4C 41 87 12 B0 41 9E 54 FA 5C 1B 42 C6 1D A2 53
-C6 1D 6E 4E 3C 40 34 01 7E 90 52 00 0B 20 7E 40
-20 00 B0 12 78 55 5C 0E 0C DE 8B 4C 00 00 3E 4F
-3D 41 30 4D 2C 53 7E 90 40 00 0B 20 92 53 C4 1D
-7E 40 20 00 B0 12 78 55 EE 23 1C 53 3E 40 2B 00
-E8 3F A2 53 C6 1D 7E 90 23 00 09 20 3C 40 3B 01
-92 53 C4 1D B0 12 00 55 BB 4F 02 00 DC 3F 7E 90
-26 00 02 20 2C 53 F4 3F 7E 40 28 00 1C 83 B0 12
-00 55 BB 4F 02 00 3E 40 29 00 CB 3F 87 12 B0 41
-9E 54 84 5D 69 4E 3E 4F 3C 40 00 18 79 90 52 00
-05 20 B0 12 78 55 0E 4C 3D 41 30 4D 82 43 EE 1D
-79 90 23 00 0B 20 92 53 C4 1D B0 12 00 55 2F 53
-3E F0 0F 00 5E 0A 5E 0E 0C DE ED 3F 79 90 26 00
-F2 27 79 90 40 00 12 20 92 53 C4 1D B0 12 78 55
-E2 23 3E 40 2B 00 92 53 C4 1D B0 12 78 55 92 92
-C0 1D C4 1D D8 27 92 53 C4 1D D5 3F 3E 40 28 00
-B0 12 00 55 8F 4E 00 00 3E 40 29 00 B0 12 78 55
-3E 4F 3E F0 0F 00 0C DE EA 3F 87 12 B0 41 9E 54
-12 5E 3C 4F 69 4E 3E 40 20 00 79 90 52 00 BB 27
-82 43 EE 1D 79 90 26 00 08 20 92 53 C4 1D B0 12
-00 55 2F 53 3E F0 0F 00 BF 3F 3E 40 28 00 B0 12
-00 55 F7 3F 1B 42 C6 1D A2 53 C6 1D 0C 4E 3E 4F
-1C D2 EE 1D 82 43 EE 1D 3C DE 8B 4C 00 00 B2 41
-C4 1D 30 4D 34 40 C4 1D F2 40 B0 40 34 40 2C 00
-7C 5D 0A 5E 44 5E 24 43 BC 56 B4 5C 04 4D 4F 56
-58 00 84 12 64 5E 40 00 00 40 7C 5E 06 4D 4F 56
-58 2E 41 00 84 12 64 5E 00 00 40 40 8C 5E 06 4D
-4F 56 58 2E 42 00 84 12 64 5E 40 00 40 40 D0 5C
-04 41 44 44 58 00 84 12 64 5E 40 00 00 50 B0 5E
-06 41 44 44 58 2E 41 00 84 12 64 5E 00 00 40 50
-C0 5E 06 41 44 44 58 2E 42 00 84 12 64 5E 40 00
-40 50 D2 5E 05 41 44 44 43 58 84 12 64 5E 40 00
-00 60 E4 5E 07 41 44 44 43 58 2E 41 84 12 64 5E
-00 00 40 60 F4 5E 07 41 44 44 43 58 2E 42 84 12
-64 5E 40 00 40 60 DE 5C 05 53 55 42 43 58 84 12
-64 5E 40 00 00 70 18 5F 07 53 55 42 43 58 2E 41
-84 12 64 5E 00 00 40 70 28 5F 07 53 55 42 43 58
-2E 42 84 12 64 5E 40 00 40 70 3A 5F 04 53 55 42
-58 00 84 12 64 5E 40 00 00 80 4C 5F 06 53 55 42
-58 2E 41 00 84 12 64 5E 00 00 40 80 5C 5F 06 53
-55 42 58 2E 42 00 84 12 64 5E 40 00 40 80 EC 5C
-04 43 4D 50 58 00 84 12 64 5E 40 00 00 90 80 5F
-06 43 4D 50 58 2E 41 00 84 12 64 5E 00 00 40 90
-90 5F 06 43 4D 50 58 2E 42 00 84 12 64 5E 40 00
-40 90 4A 5A 05 44 41 44 44 58 84 12 64 5E 40 00
-00 A0 B4 5F 07 44 41 44 44 58 2E 41 84 12 64 5E
-00 00 40 A0 C4 5F 07 44 41 44 44 58 2E 42 84 12
-64 5E 40 00 40 A0 A2 5F 04 42 49 54 58 00 84 12
-64 5E 40 00 00 B0 E8 5F 06 42 49 54 58 2E 41 00
-84 12 64 5E 00 00 40 B0 F8 5F 06 42 49 54 58 2E
-42 00 84 12 64 5E 40 00 40 B0 0A 60 04 42 49 43
-58 00 84 12 64 5E 40 00 00 C0 1C 60 06 42 49 43
-58 2E 41 00 84 12 64 5E 00 00 40 C0 2C 60 06 42
-49 43 58 2E 42 00 84 12 64 5E 40 00 40 C0 3E 60
-04 42 49 53 58 00 84 12 64 5E 40 00 00 D0 50 60
-06 42 49 53 58 2E 41 00 84 12 64 5E 00 00 40 D0
-60 60 06 42 49 53 58 2E 42 00 84 12 64 5E 40 00
-40 D0 EC 57 04 58 4F 52 58 00 84 12 64 5E 40 00
-00 E0 84 60 06 58 4F 52 58 2E 41 00 84 12 64 5E
-00 00 40 E0 94 60 06 58 4F 52 58 2E 42 00 84 12
-64 5E 40 00 40 E0 06 5F 04 41 4E 44 58 00 84 12
-64 5E 40 00 00 F0 B8 60 06 41 4E 44 58 2E 41 00
-84 12 64 5E 00 00 40 F0 C8 60 06 41 4E 44 58 2E
-42 00 84 12 64 5E 40 00 40 F0 34 40 C4 1D F2 40
-B0 40 B0 41 7C 5D 44 5E 24 43 12 58 6E 5F 04 52
-52 43 58 00 84 12 EA 60 40 00 00 10 FE 60 06 52
-52 43 58 2E 41 00 84 12 EA 60 00 00 40 10 0E 61
-06 52 52 43 58 2E 42 00 84 12 EA 60 40 00 40 10
-20 61 04 52 52 55 58 00 84 12 EA 60 40 01 00 10
-32 61 06 52 52 55 58 2E 41 00 84 12 EA 60 00 01
-40 10 42 61 06 52 52 55 58 2E 42 00 84 12 EA 60
-40 01 40 10 54 61 05 53 57 50 42 58 84 12 EA 60
-40 00 80 10 66 61 07 53 57 50 42 58 2E 41 84 12
-EA 60 00 00 80 10 76 61 04 52 52 41 58 00 84 12
-EA 60 40 00 00 11 88 61 06 52 52 41 58 2E 41 00
-84 12 EA 60 00 00 40 11 98 61 06 52 52 41 58 2E
-42 00 84 12 EA 60 40 00 40 11 AA 61 04 53 58 54
-58 00 84 12 EA 60 40 00 80 11 BC 61 06 53 58 54
-58 2E 41 00 84 12 EA 60 00 00 80 11 06 5A 05 50
-55 53 48 58 84 12 EA 60 40 00 00 12 DE 61 07 50
-55 53 48 58 2E 41 84 12 EA 60 00 00 40 12 EE 61
-07 50 55 53 48 58 2E 42 84 12 EA 60 40 00 40 12
-CC 61 03 52 50 54 87 12 B0 41 9E 54 1E 62 29 4E
-7E 40 20 00 79 90 52 00 06 20 B0 12 78 55 03 24
-3E D0 80 00 04 3C B0 12 00 55 3E F0 0F 00 82 4E
-EE 1D 3E 4F 3D 41 30 4D 1A 43 25 3C D2 C3 23 02
-E2 B2 60 02 02 24 30 40 B0 53 1A 52 04 20 19 62
-06 20 92 43 14 20 A2 93 02 20 07 24 0A 5A 49 69
-82 4A 16 20 C2 49 18 20 0A 3C C2 4A 15 20 8A 10
-C2 4A 16 20 C2 49 17 20 89 10 C2 49 18 20 B0 12
-D0 62 5A 53 FC 23 39 40 05 00 D2 49 14 20 4E 06
-82 93 46 06 05 24 92 B3 6C 06 FD 27 C2 93 4C 06
-59 83 F3 2F 19 83 0B 30 F2 43 4E 06 82 93 46 06
-03 24 92 B3 6C 06 FD 27 5A 92 4C 06 F3 23 30 41
-19 43 3A 43 8A 10 C2 4A 4E 06 82 93 46 06 05 24
-92 B3 6C 06 FD 27 C2 93 4C 06 19 83 F3 23 5A 42
-4C 06 30 41 1A 52 08 20 09 43 1C D3 F2 40 51 00
-19 20 B0 12 4C 62 33 20 B0 12 D0 62 6A 53 04 24
-FB 23 D9 42 4C 06 FF 1D F2 43 4E 06 03 43 19 53
-39 90 01 02 F6 23 F2 43 4E 06 3C C0 03 00 D2 D3
-23 02 30 41 09 43 2C D3 F0 40 58 00 DD BC B0 12
-4C 62 15 20 3A 40 FE FF 29 43 B0 12 D4 62 D2 49
-00 1E 4E 06 03 43 19 53 39 90 00 02 F8 23 39 40
-03 00 B0 12 D2 62 7A C0 E1 00 6A 92 DE 27 8C 10
-1C 52 4C 06 D2 D3 23 02 87 12 1A 45 BA 45 0B 3C
-20 53 44 20 45 72 72 6F 72 21 8C 63 2F 83 B2 40
-10 00 DC 1D 0E 4C B0 12 2A 40 D2 42 E6 49 92 4B
-0E 00 22 20 92 4B 10 00 24 20 5A 42 23 20 58 42
-22 20 92 93 02 20 08 24 59 42 24 20 89 10 0A 59
-88 10 08 58 0A 6A 88 10 08 58 30 41 82 43 1C 20
-92 42 0E 20 1A 20 C2 93 24 20 03 20 92 93 22 20
-14 24 92 42 22 20 D0 04 92 42 24 20 D2 04 92 42
-12 20 C8 04 92 42 E4 04 1A 20 92 42 E6 04 1C 20
-92 52 10 20 1A 20 82 63 1C 20 30 41 92 4B 0E 00
-22 20 92 4B 10 00 24 20 B0 12 CC 63 5A 4B 03 00
-82 5A 1A 20 82 63 1C 20 30 41 09 93 07 24 F8 90
-20 00 00 1E 03 20 18 53 19 83 F9 23 30 41 1B 42
-32 20 82 43 1E 20 B2 90 00 02 20 20 A8 20 BB 80
-00 02 12 00 8B 73 14 00 DB 53 03 00 DB 92 12 20
-03 00 11 28 CB 43 03 00 B0 12 9E 63 B0 12 F4 62
-8B 43 10 00 9B 48 00 1E 0E 00 92 93 02 20 03 24
-9B 48 02 1E 10 00 B2 40 00 02 20 20 8B 93 14 00
-0B 20 92 9B 12 00 1E 20 82 2C BB 90 00 02 12 00
-03 2C 92 4B 12 00 20 20 B0 12 0C 64 1A 42 1A 20
-19 42 1C 20 22 3F 3C 42 3B 40 38 20 09 43 CB 93
-02 00 10 24 9B 92 24 20 0C 00 04 20 9B 92 22 20
-0A 00 07 24 09 4B 3B 50 1C 00 3B 90 18 21 EF 23
-0C 5C 30 41 0C 43 82 4B 32 20 8B 49 00 00 09 93
-0A 24 99 52 C4 1D 16 00 4A 93 05 34 C9 93 02 00
-02 34 5A 59 02 00 CB 4A 02 00 CB 43 03 00 9B 42
-1A 20 04 00 9B 42 1C 20 06 00 18 42 30 20 8B 48
-08 00 9B 48 1A 1E 0A 00 9B 48 14 1E 0C 00 9B 48
-1A 1E 0E 00 9B 48 14 1E 10 00 9B 48 1C 1E 12 00
-9B 48 1E 1E 14 00 82 43 1E 20 6A 93 5F 27 C9 37
-8B 43 16 00 7A 93 02 24 07 38 95 3F B2 40 1C 21
-F8 44 B2 40 BE 43 24 44 9B 42 C0 1D 18 00 9B 82
-C4 1D 18 00 9B 42 C2 1D 1A 00 9B 52 C4 1D 1A 00
-82 3F CB 43 02 00 2B 4B 82 4B 32 20 0B 93 06 24
-92 4B 16 00 1E 20 B0 12 86 64 22 C3 30 41 1B 42
-32 20 0B 93 FB 27 EB 93 02 00 04 20 B0 12 FE 69
-B0 12 C6 69 CB 93 02 00 E4 37 1E 4B 18 00 9F 4B
-1A 00 00 00 31 50 06 00 3D 41 B0 12 82 65 02 24
-30 40 30 45 B2 40 3C 1D F8 44 B2 40 26 44 24 44
-30 40 1A 45 E8 54 85 52 45 41 44 22 5A 43 19 3C
-02 52 86 57 52 49 54 45 22 00 6A 43 12 3C 88 4F
-84 44 45 4C 22 00 6A 42 0C 3C AA 53 05 43 4C 4F
-53 45 B0 12 9E 65 30 4D B4 50 85 4C 4F 41 44 22
-7A 43 2F 83 8F 4E 00 00 0E 4A 82 93 BE 1D 0A 24
-87 12 34 40 34 40 30 48 30 48 D4 45 34 40 52 66
-30 48 2A 40 87 12 34 40 22 00 1E 46 84 48 50 66
-3D 41 35 4F 0E 55 82 4E 36 20 1C 43 92 42 2C 20
-22 20 92 42 2E 20 24 20 0E 95 8D 24 F5 90 3A 00
-01 00 01 20 25 53 F5 90 5C 00 00 00 08 20 15 53
-92 42 02 20 22 20 82 43 24 20 0E 95 70 24 82 45
-34 20 B0 12 CC 63 34 40 20 00 A2 93 02 20 04 24
-92 92 22 20 02 20 02 24 14 42 12 20 B0 12 AC 64
-2C 43 0A 43 08 4A 58 0E 08 58 82 48 30 20 C8 93
-00 1E 61 24 39 42 F8 95 00 1E 04 20 18 53 19 83
-FA 23 15 53 F5 90 2E 00 FF FF 19 24 39 50 03 00
-B0 12 2A 64 06 20 F5 90 5C 00 FF FF 29 24 0E 95
-27 28 15 42 34 20 1A 53 3A 90 10 00 DB 23 92 53
-1A 20 82 63 1C 20 14 83 D1 23 2C 42 3C 3C F5 90
-2E 00 FE FF EE 27 B0 12 2A 64 EB 23 39 40 03 00
-F8 95 00 1E 04 20 18 53 19 83 FA 23 09 3C 0E 95
-E0 2F F5 90 5C 00 FF FF DC 23 B0 12 2A 64 D9 23
-18 42 30 20 92 48 1A 1E 22 20 92 48 14 1E 24 20
-F8 B0 10 00 0B 1E 14 24 82 93 24 20 06 20 82 93
-22 20 03 20 92 42 02 20 22 20 0E 95 8E 2F 92 42
-22 20 2C 20 92 42 24 20 2E 20 8F 43 00 00 03 3C
-2A 4F B0 12 B6 64 34 40 00 40 35 40 0E 40 3A 4F
-3E 4F 0A 93 04 24 7A 93 12 20 0C 93 01 20 30 4D
-87 12 BA 45 0B 3C 20 4F 70 65 6E 45 72 72 6F 72
-1A 45 F2 42 84 48 7C 45 44 45 24 43 8A 63 1A 93
-B6 20 0C 93 ED 23 30 4D E6 65 04 52 45 41 44 00
-2F 83 8F 4E 00 00 1E 42 32 20 B0 12 3E 64 1E 82
-32 20 30 4D 2C 43 12 12 2A 20 18 42 02 20 08 58
-2A 41 82 9A 0A 20 A1 24 B0 12 F4 62 09 43 28 93
-03 24 89 93 02 1E 03 20 89 93 00 1E 07 24 09 58
-39 90 00 02 F4 23 91 53 00 00 EA 3F 0C 43 6A 41
-B9 43 00 1E 28 93 0F 24 B9 40 FF 0F 02 1E 09 11
-8A 10 09 5A 5A 41 01 00 0A 11 09 10 82 4A 28 20
-82 49 26 20 07 3C 09 11 C2 49 26 20 C2 4A 27 20
-82 43 28 20 3A 41 82 4A 2A 20 30 41 0A 12 1A 52
-08 20 B0 12 34 63 3A 41 1A 52 0C 20 30 40 34 63
-F2 B0 40 00 A2 04 29 20 F2 B0 10 00 A2 04 FC 27
-5A 42 B0 04 4A 11 59 42 B4 04 F2 40 20 00 C0 04
-D2 42 B1 04 C8 04 1A 52 E4 04 D2 42 B5 04 C8 04
-19 52 E4 04 D2 42 B2 04 C0 04 B2 40 00 08 C8 04
-1A 52 E4 04 92 42 B6 04 C0 04 B2 80 BC 07 C0 04
-B2 40 00 02 C8 04 19 52 E4 04 30 41 22 2A 2B 2C
-2F 3A 3B 3C 3D 3E 3F 5B 5C 5D 7C 2E 29 92 06 38
-39 80 03 00 B0 12 1C 69 39 40 03 00 7A 4B C8 4A
-00 1E 82 9B 36 20 12 28 0D 12 3D 40 0F 00 3C 40
-CC 68 7A 9C F3 27 1D 83 FC 23 3D 41 6A 9C E6 27
-3A 80 21 00 EB 3B 18 53 19 83 E8 23 09 93 06 24
-F8 40 20 00 00 1E 18 53 19 83 FA 23 30 41 2A 93
-EB 20 2C 93 0D 24 0C 93 BA 24 87 12 BA 45 0C 3C
-20 57 72 69 74 65 45 72 72 6F 72 00 24 43 B0 67
-B0 12 E4 67 92 42 26 20 22 20 92 42 28 20 24 20
-B0 12 5C 68 B0 12 AC 64 18 42 30 20 F8 40 20 00
-0B 1E B0 12 70 68 88 43 0C 1E 88 4A 0E 1E 88 49
-10 1E 88 49 12 1E 98 42 24 20 14 1E 98 42 22 20
-1A 1E 88 43 1C 1E 88 43 1E 1E 1C 43 1B 42 34 20
-82 9B 36 20 CA 27 FB 90 2E 00 00 00 C6 27 39 40
-0B 00 B0 12 EC 68 B0 12 08 6A 2A 43 B0 12 B6 64
-0C 93 BB 23 30 4D 1A 4B 04 00 19 4B 06 00 B0 12
-FA 62 B0 12 70 68 18 4B 08 00 88 49 12 1E 88 4A
-16 1E 88 49 18 1E 98 4B 12 00 1C 1E 98 4B 14 00
-1E 1E 1A 4B 04 00 19 4B 06 00 30 40 36 63 9B 52
-1E 20 12 00 8B 63 14 00 1A 42 1A 20 19 42 1C 20
-30 40 36 63 B2 40 00 02 1E 20 1B 42 32 20 B0 12
-FE 69 82 43 1E 20 DB 53 03 00 DB 92 12 20 03 00
-22 20 CB 43 03 00 B0 12 9E 63 08 12 0A 12 B0 12
-E4 67 2A 91 05 24 B0 12 5C 68 2A 41 B0 12 F4 62
-3A 41 38 41 98 42 26 20 00 1E 92 93 02 20 03 24
-98 42 28 20 02 1E B0 12 5C 68 9B 42 26 20 0E 00
-9B 42 28 20 10 00 30 40 0C 64 F2 65 05 57 52 49
-54 45 B0 12 14 6A 30 4D CA 67 07 53 44 5F 45 4D
-49 54 B2 90 00 02 1E 20 02 28 B0 12 14 6A 18 42
-1E 20 C8 4E 00 1E 92 53 1E 20 3E 4F 30 4D 58 4B
-13 00 59 4B 14 00 89 10 09 58 58 4B 15 00 5B 42
-12 20 0A 43 3C 42 08 11 09 10 4A 10 1C 83 0B 11
-FA 2B 0A 11 1C 83 FD 37 1B 42 32 20 19 5B 0A 00
-18 6B 0C 00 8B 49 0E 00 8B 48 10 00 CB 4A 03 00
-1A 4B 12 00 BB C0 FF 01 12 00 3A F0 FF 01 82 4A
-1E 20 B0 12 A8 64 30 4D 0C 93 38 20 38 90 E0 01
-03 2C C8 93 20 1E 02 24 7C 40 E5 00 C8 4C 00 1E
-B0 12 08 6A B0 12 AA 63 82 4A 2A 20 0B 4A B0 12
-F4 62 1A 48 00 1E 88 43 00 1E 92 93 02 20 09 24
-19 48 02 1E 88 43 02 1E 39 F0 FF 0F 39 90 FF 0F
-02 20 3A 93 0E 24 82 4A 22 20 82 49 24 20 B0 12
-AA 63 0B 9A E6 27 0A 12 0A 4B B0 12 5C 68 3A 41
-DD 3F 0A 4B B0 12 5C 68 B0 12 9E 65 30 4D 8C 4D
-08 54 45 52 4D 32 53 44 22 00 87 12 06 66 34 40
-02 00 F2 42 84 48 52 66 9A 6B 3D 41 92 C3 DC 05
-08 43 B0 12 5A 44 92 B3 DC 05 FD 27 59 42 CC 05
-69 92 0D 24 C8 49 00 1E 18 53 38 90 FF 01 F3 2B
-03 24 B0 12 14 6A EC 3F B0 12 6C 44 EC 3F B0 12
-6C 44 82 48 1E 20 B0 12 9E 65 30 4D
+FE FF 89 48 00 00 30 4D 87 12 80 44 0F 73 74 61
+63 6B 20 6D 69 73 6D 61 74 63 68 21 F2 48 F2 47
+05 44 45 46 45 52 B0 12 5E 4A BA 40 30 40 FC FF
+BA 40 54 4A FE FF E3 3F 3A 48 06 43 52 45 41 54
+45 00 B0 12 5E 4A BA 40 85 12 FC FF 8A 4A FE FF
+D6 3F D0 4A 05 44 4F 45 53 3E 1A 42 BA 1D BA 40
+84 12 00 00 8A 4D 02 00 3D 41 30 4D B0 45 05 3E
+42 4F 44 59 2E 52 30 4D EA 4A 04 43 4F 44 45 00
+B0 12 5E 4A 82 43 C6 5F A2 82 C6 1D 87 12 CE 4D
+A0 4D 2A 40 2A 4B 07 43 4F 44 45 4E 4E 4D B0 12
+2C 4A F0 3F 00 00 07 45 4E 44 43 4F 44 45 87 12
+E8 4D A0 4A 2A 40 D2 48 03 41 53 4D B2 40 A4 4D
+DA 1D DE 3F 56 4B 06 45 4E 44 41 53 4D 00 87 12
+5E 4B 12 4E 2A 40 00 00 05 43 4F 4C 4F 4E 1A 42
+C6 1D BA 40 87 12 00 00 A2 53 C6 1D B2 43 BE 1D
+30 40 E8 4D 00 00 05 4C 4F 32 48 49 1A 42 C6 1D
+BA 40 B0 12 00 00 BA 40 2A 40 02 00 A2 52 C6 1D
+ED 3F C0 49 85 48 49 32 4C 4F 87 12 02 47 F4 4B
+12 47 86 49 CE 4D A0 4D 2A 40 C4 4B 82 49 46 00
+2F 83 8F 4E 00 00 1E 42 C6 1D A2 52 C6 1D BE 40
+40 42 00 00 2E 53 30 4D 04 4B 84 45 4C 53 45 00
+A2 52 C6 1D 1A 42 C6 1D BA 40 3C 42 FC FF 8E 4A
+00 00 2A 83 0E 4A 30 4D 32 44 84 54 48 45 4E 00
+9E 42 C6 1D 00 00 3E 4F 30 4D 46 4B 85 42 45 47
+49 4E 30 40 02 47 1A 4C 85 55 4E 54 49 4C 39 40
+40 42 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E
+FE FF 3E 4F 30 4D 68 4B 85 41 47 41 49 4E 39 40
+3C 42 EF 3F DC 44 85 57 48 49 4C 45 87 12 E0 4B
+76 40 2A 40 96 44 86 52 45 50 45 41 54 00 87 12
+5E 4C 20 4C 2A 40 FA 4B 82 44 4F 00 2F 83 8F 4E
+00 00 A2 53 C6 1D 1E 42 C6 1D BE 40 54 42 FE FF
+A2 53 00 1C 1A 42 00 1C 8A 43 00 00 30 4D 44 47
+84 4C 4F 4F 50 00 39 40 76 42 A2 52 C6 1D 1A 42
+C6 1D 8A 49 FC FF 8A 4E FE FF 1E 42 00 1C A2 83
+00 1C 2E 4E 0E 93 03 24 8E 4A 00 00 F6 3F 3E 4F
+30 4D 90 42 85 2B 4C 4F 4F 50 39 40 64 42 E5 3F
+B0 4C 04 4D 4F 56 45 00 0A 4E 38 4F 39 4F 3E 4F
+0A 93 11 24 08 99 0F 24 06 2C F8 49 00 00 18 53
+1A 83 FB 23 30 4D 08 5A 09 5A 19 83 18 83 E8 49
+00 00 1A 83 FA 23 30 4D 66 4C 0A 56 4F 43 41 42
+55 4C 41 52 59 00 87 12 F2 4A 76 44 10 00 76 44
+00 00 54 42 76 44 00 00 12 47 76 42 44 4D 02 47
+76 44 C8 1D 34 40 EA 40 12 47 F2 40 0A 4B 76 44
+CA 1D F2 40 2A 40 64 49 05 46 4F 52 54 48 84 12
+5E 4D C8 4D C8 63 BC 63 68 4D DC 4B E4 4C D6 63
+F8 4D 84 4E 7C 65 0C 69 2E 68 00 00 B8 52 8E 49
+1E 4B 00 00 58 4C 09 41 53 53 45 4D 42 4C 45 52
+84 12 5E 4D 90 5E 28 5E 8C 5D 50 59 F4 57 00 00
+54 5C 00 00 B6 5F CA 5F 4C 58 8A 58 5C 5E 00 00
+00 00 2C 59 92 4D 96 4D 04 41 4C 53 4F 00 3A 40
+0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F D8 49 08 50
+52 45 56 49 4F 55 53 00 3A 40 0E 00 39 40 CC 1D
+38 40 CA 1D 8A 3F C6 44 04 4F 4E 4C 59 00 82 43
+CC 1D 30 4D 88 4C 0B 44 45 46 49 4E 49 54 49 4F
+4E 53 92 42 CA 1D DA 1D 30 4D 6E 4D FE 4D 12 4E
+22 4E 3A 4E 82 4A C8 1D 2E 4E 82 4E C6 1D 3D 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98 FC 2B
+89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23 3E 4F
+3D 41 30 4D DE 4D 09 50 57 52 5F 53 54 41 54 45
+84 12 1A 4E C4 4D 68 69 76 4C 09 52 53 54 5F 53
+54 41 54 45 92 42 0E 18 64 4E 92 42 0C 18 66 4E
+EF 3F 56 4E 08 50 57 52 5F 48 45 52 45 00 92 42
+C8 1D 64 4E 92 42 C6 1D 66 4E 30 4D 6A 4E 08 52
+53 54 5F 48 45 52 45 00 92 42 C8 1D 0E 18 92 42
+C6 1D 0C 18 EC 3F 2A 4D 04 57 49 50 45 00 39 40
+10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 42 DE 42
+B2 40 4A 4F 48 4F B2 40 80 48 7E 48 B2 40 C4 4D
+0E 18 B2 40 68 69 0C 18 30 12 74 4E B2 40 E4 43
+E2 43 B2 40 6A 44 68 44 B2 40 98 42 96 42 B2 40
+52 43 50 43 B2 40 3C 1D EC 43 1B 42 32 20 0B 93
+04 24 CB 43 02 00 2B 4B FA 3F B2 40 18 00 0A 18
+37 40 1A 40 36 40 92 40 35 40 0E 40 34 40 00 40
+B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41 B8 4E
+04 57 41 52 4D 00 30 40 4A 4F 3D 40 98 50 92 C3
+30 01 1E 42 08 18 0E 93 9E 24 D2 B3 01 02 02 20
+3E E3 1E 53 F2 D0 03 00 0D 02 E2 B2 60 02 8A 20
+39 42 B0 12 8C 60 D2 C3 23 02 2C 42 B2 40 95 00
+14 20 B2 40 00 40 18 20 B0 12 02 60 02 24 30 40
+28 61 B0 12 8A 60 7A 93 FC 23 B2 40 87 AA 14 20
+92 43 16 20 B2 40 00 48 18 20 B0 12 02 60 29 42
+B0 12 8C 60 92 43 14 20 82 43 16 20 78 43 3C 42
+B2 40 00 77 18 20 B0 12 02 60 B2 40 40 69 18 20
+B0 12 48 60 03 24 58 83 F3 23 D9 3F 0C 5C A2 43
+16 20 B2 40 00 50 18 20 B0 12 48 60 D0 23 92 D3
+40 06 82 43 46 06 92 C3 40 06 B0 12 B2 60 38 40
+00 1E 92 48 C6 01 04 20 92 48 C8 01 06 20 5A 48
+C2 01 92 43 02 20 7A 80 06 00 0F 24 7A 82 0D 24
+A2 43 02 20 6A 53 09 24 5A 53 07 24 6A 52 05 24
+3A 50 0B 20 0C 4A 30 40 2E 61 B0 12 B2 60 D2 48
+0D 00 12 20 19 48 0E 00 82 49 08 20 1A 48 16 00
+0A 93 02 20 1A 48 24 00 82 4A 0A 20 09 5A 82 49
+0C 20 09 5A A2 93 02 20 04 24 82 49 0E 20 39 50
+20 00 19 82 12 20 19 82 12 20 82 49 10 20 92 42
+02 20 2C 20 3E 90 0A 00 1A 27 3E 90 16 00 17 2F
+2E 93 E6 26 EF 2E 30 4D 80 44 06 0D 1B 5B 37 6D
+23 00 38 44 34 42 80 44 19 46 61 73 74 46 6F 72
+74 68 20 C2 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
+73 20 38 44 76 44 30 FF 02 47 B8 40 24 42 80 44
+0A 62 79 74 65 73 20 66 72 65 65 00 3C 42 40 49
+2C 4C 04 43 4F 4C 44 00 92 B3 CA 05 FD 23 B2 40
+04 A5 20 01 98 50 B2 40 88 5A 5C 01 B2 D3 06 02
+B2 40 FC FF 02 02 B2 43 26 02 B2 D3 22 02 E2 D2
+25 02 B2 43 42 02 B2 D3 46 02 B2 43 62 02 B2 D3
+66 02 F2 43 26 03 F2 D3 22 03 F2 40 A5 00 61 01
+82 43 62 01 82 43 66 01 39 40 10 00 B2 40 33 00
+64 01 D2 43 61 01 92 D2 9E 01 08 18 38 40 59 14
+18 83 FE 23 19 83 FA 23 F2 D0 10 00 2A 03 F2 40
+A5 00 A1 04 F2 C0 40 00 A2 04 B2 42 B0 01 39 40
+00 10 29 83 89 43 00 1C FC 23 39 40 4C 00 29 83
+B9 40 F6 50 B4 FF FB 23 B2 40 84 43 F0 FF B2 40
+81 00 C0 05 92 42 02 18 C6 05 92 42 04 18 C8 05
+92 C3 C0 05 92 D3 DA 05 B2 40 81 A9 40 06 B2 40
+03 00 46 06 D2 D3 25 02 B2 D0 C0 04 0C 02 92 C3
+40 06 3F 40 80 1C 31 40 E0 1C 30 12 46 4F A5 3E
+E2 50 07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F
+39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30
+19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43
+30 4D 58 4A 86 5B 54 48 45 4E 5D 00 30 4D 04 52
+86 5B 45 4C 53 45 5D 00 87 12 76 44 00 00 C6 40
+A4 47 E2 44 86 47 34 40 40 42 7A 52 44 40 80 44
+06 5B 54 48 45 4E 5D 00 DA 51 4A 42 4A 52 5A 44
+D0 40 58 40 4A 42 20 52 2A 40 44 40 80 44 06 5B
+45 4C 53 45 5D 00 DA 51 4A 42 68 52 5A 44 D0 40
+58 40 4A 42 1E 52 2A 40 80 44 04 5B 49 46 5D 00
+DA 51 4A 42 20 52 3C 42 1E 52 5A 44 80 44 05 0D
+0A 6B 6F 20 38 44 EE 43 94 47 3C 42 20 52 10 52
+84 5B 49 46 5D 00 0E 93 3E 4F BE 27 30 4D 90 52
+89 5B 44 45 46 49 4E 45 44 5D 87 12 A4 47 E2 44
+50 45 6A 40 2A 40 A0 52 8B 5B 55 4E 44 45 46 49
+4E 45 44 5D 87 12 A4 47 E2 44 50 45 6A 40 00 41
+2A 40 D4 52 3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F
+30 40 74 4E F2 4C 06 4D 41 52 4B 45 52 00 B0 12
+5E 4A BA 40 84 12 FC FF BA 40 D2 52 FE FF 9A 42
+C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40
+A6 4A 1C 15 B0 12 2A 40 E2 44 50 45 4A 42 28 53
+0C 46 40 42 74 49 42 53 2A 53 39 4E 39 80 86 12
+08 24 19 53 02 20 2E 4E 04 3C 2E 53 19 53 01 24
+2E 82 1B 17 30 41 32 B0 00 02 01 24 3E 4F 30 41
+3E 40 28 00 B0 12 12 53 B0 12 46 53 19 42 C6 1D
+A2 53 C6 1D 89 4E 00 00 3E 40 29 00 1C 15 12 12
+C4 1D 92 53 C4 1D B0 12 2A 40 E2 44 0C 46 40 42
+8E 53 84 53 21 53 3E 90 10 00 81 2D DA 2B 90 53
+B2 41 C4 1D D6 3F 87 12 A4 47 D6 44 9E 53 0C 43
+1B 42 C6 1D A2 53 C6 1D 6A 4E 3E 4F 7A 90 23 00
+29 20 92 53 C4 1D B0 12 12 53 B0 12 46 53 3C 40
+00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24 3C 40
+20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24 3C 40
+30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24 3C 40
+30 00 19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 4F
+3D 41 30 4D 7A 90 26 00 09 20 3C 40 10 02 92 53
+C4 1D B0 12 12 53 B0 12 46 53 EB 3F 7A 90 40 00
+16 20 3C 40 20 00 92 53 C4 1D B0 12 6C 53 0C 20
+3C 50 10 00 3E 40 2B 00 B0 12 6C 53 92 92 C0 1D
+C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E D8 3F B0 12
+6C 53 FA 23 3C 50 10 00 B0 12 50 53 EF 3F 0C 43
+1B 42 C6 1D A2 53 C6 1D 87 12 A4 47 D6 44 70 54
+FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
+C6 3F B0 12 6C 53 E1 23 3C 50 80 00 B0 12 50 53
+DC 3F D6 42 04 52 45 54 49 00 87 12 76 44 00 13
+12 47 2A 40 76 44 2C 00 96 53 68 54 AE 54 09 4B
+2E 4E 0E DC A2 3F A6 4B 03 4D 4F 56 84 12 A4 54
+00 40 B8 54 05 4D 4F 56 2E 42 84 12 A4 54 40 40
+00 00 03 41 44 44 84 12 A4 54 00 50 D2 54 05 41
+44 44 2E 42 84 12 A4 54 40 50 DE 54 04 41 44 44
+43 00 84 12 A4 54 00 60 EC 54 06 41 44 44 43 2E
+42 00 84 12 A4 54 40 60 94 54 04 53 55 42 43 00
+84 12 A4 54 00 70 0A 55 06 53 55 42 43 2E 42 00
+84 12 A4 54 40 70 18 55 03 53 55 42 84 12 A4 54
+00 80 28 55 05 53 55 42 2E 42 84 12 A4 54 40 80
+88 4B 03 43 4D 50 84 12 A4 54 00 90 42 55 05 43
+4D 50 2E 42 84 12 A4 54 40 90 76 4B 04 44 41 44
+44 00 84 12 A4 54 00 A0 5C 55 06 44 41 44 44 2E
+42 00 84 12 A4 54 40 A0 4E 55 03 42 49 54 84 12
+A4 54 00 B0 7A 55 05 42 49 54 2E 42 84 12 A4 54
+40 B0 86 55 03 42 49 43 84 12 A4 54 00 C0 94 55
+05 42 49 43 2E 42 84 12 A4 54 40 C0 A0 55 03 42
+49 53 84 12 A4 54 00 D0 AE 55 05 42 49 53 2E 42
+84 12 A4 54 40 D0 00 00 03 58 4F 52 84 12 A4 54
+00 E0 C8 55 05 58 4F 52 2E 42 84 12 A4 54 40 E0
+FA 54 03 41 4E 44 84 12 A4 54 00 F0 E2 55 05 41
+4E 44 2E 42 84 12 A4 54 40 F0 A4 47 96 53 00 56
+0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
+34 55 03 52 52 43 84 12 FA 55 00 10 12 56 05 52
+52 43 2E 42 84 12 FA 55 40 10 1E 56 04 53 57 50
+42 00 84 12 FA 55 80 10 2C 56 03 52 52 41 84 12
+FA 55 00 11 3A 56 05 52 52 41 2E 42 84 12 FA 55
+40 11 46 56 03 53 58 54 84 12 FA 55 80 11 00 00
+04 50 55 53 48 00 84 12 FA 55 00 12 60 56 06 50
+55 53 48 2E 42 00 84 12 FA 55 40 12 BA 55 04 43
+41 4C 4C 00 84 12 FA 55 80 12 1A 53 0E 4A 87 12
+34 42 80 44 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
+64 73 F2 48 A4 47 D6 44 AA 56 92 53 C4 1D 3E 40
+2C 00 B0 12 2A 40 E2 44 0C 46 40 42 74 49 5E 54
+C2 56 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28
+08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 D5 2F
+5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F 54 56
+06 52 52 43 4D 2E 41 00 84 12 A4 56 40 00 F0 56
+04 52 52 43 4D 00 84 12 A4 56 50 00 00 57 06 52
+52 41 4D 2E 41 00 84 12 A4 56 40 01 0E 57 04 52
+52 41 4D 00 84 12 A4 56 50 01 1E 57 06 52 4C 41
+4D 2E 41 00 84 12 A4 56 40 02 2C 57 04 52 4C 41
+4D 00 84 12 A4 56 50 02 3C 57 06 52 52 55 4D 2E
+41 00 84 12 A4 56 40 03 4A 57 04 52 52 55 4D 00
+84 12 A4 56 50 03 6E 56 07 50 55 53 48 4D 2E 41
+84 12 A4 56 00 14 68 57 05 50 55 53 48 4D 84 12
+A4 56 00 15 78 57 06 50 4F 50 4D 2E 41 00 84 12
+A4 56 00 16 86 57 04 50 4F 50 4D 00 84 12 A4 56
+00 17 5A 57 03 53 3E 3D 85 12 00 38 A4 57 02 53
+3C 00 85 12 00 34 96 57 03 30 3E 3D 85 12 00 30
+B8 57 02 30 3C 00 85 12 00 30 00 00 02 55 3C 00
+85 12 00 2C CC 57 03 55 3E 3D 85 12 00 28 C2 57
+03 30 3C 3E 85 12 00 24 E0 57 02 30 3D 00 85 12
+00 20 00 00 02 49 46 00 1A 42 C6 1D 8A 4E 00 00
+A2 53 C6 1D 0E 4A 30 4D D6 57 04 54 48 45 4E 00
+1A 42 C6 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11
+3A 90 00 02 33 2F 88 DA 00 00 30 4D 6A 55 04 45
+4C 53 45 00 1A 42 C6 1D BA 40 00 3C 00 00 A2 53
+C6 1D 2F 83 8F 4A 00 00 E3 3F 0A 58 05 55 4E 54
+49 4C 3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89
+0A 11 3A 90 00 FE 12 3B 3A F0 FF 03 08 DA 89 48
+00 00 A2 53 C6 1D 30 4D EE 55 05 41 47 41 49 4E
+0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
+87 12 F8 57 76 40 2A 40 AE 57 06 52 45 50 45 41
+54 00 87 12 80 58 10 58 2A 40 AC 58 3D 41 08 4E
+3E 4F 2A 48 B2 92 C4 1D CD 2F 98 42 C6 1D 00 00
+30 4D 7E 56 03 42 57 31 84 12 AA 58 00 00 C4 58
+03 42 57 32 84 12 AA 58 00 00 D0 58 03 42 57 33
+84 12 AA 58 00 00 E8 58 3D 41 1A 42 C6 1D 28 4E
+B2 92 C4 1D 90 2B BA 4F 00 00 A2 53 C6 1D 8E 4A
+00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12 E6 58
+00 00 08 59 03 46 57 32 84 12 E6 58 00 00 14 59
+03 46 57 33 84 12 E6 58 00 00 00 00 05 3F 47 4F
+54 4F 3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10
+02 24 3E E0 00 08 87 12 66 49 3C 47 2A 40 20 59
+04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
+F2 3F 87 12 A4 47 D6 44 6A 59 69 4E 3E 4F 3C 4F
+2C 4C 1B 42 C6 1D A2 53 C6 1D 79 90 52 00 0A 20
+B0 12 6C 53 5E 0E 5E 0E 0E DC 8B 4E 00 00 0E 4B
+3D 41 30 4D 79 90 23 00 0D 20 3C C0 40 00 92 53
+C4 1D A2 53 C6 1D B0 12 12 53 BB 4F 02 00 3E F0
+0F 00 E8 3F 79 90 26 00 03 20 3C E0 E0 00 EF 3F
+3C C0 F0 00 79 90 40 00 12 20 92 53 C4 1D B0 12
+6C 53 D8 23 3C D0 10 00 3E 40 2B 00 B0 12 6C 53
+92 92 C0 1D C4 1D CE 27 92 53 C4 1D CB 3F 3C D0
+30 00 A2 53 C6 1D 3E 40 28 00 B0 12 12 53 BB 4F
+02 00 3E 40 29 00 EA 3F 87 12 A4 47 D6 44 10 5A
+3B 4F 2C 4B 69 4E 7E 40 20 00 79 90 52 00 03 20
+B0 12 6C 53 B1 3F 3C C0 F0 00 A2 53 C6 1D 79 90
+26 00 09 20 3C D0 60 00 92 53 C4 1D B0 12 12 53
+BB 4F 02 00 A1 3F 3C D0 70 00 3E 40 28 00 B0 12
+12 53 BB 4F 02 00 3E 40 29 00 E2 3F 76 44 2C 00
+62 59 08 5A 66 40 2A 40 C4 54 04 4D 4F 56 41 00
+84 12 5C 5A C0 00 DC 58 04 43 4D 50 41 00 84 12
+5C 5A D0 00 7A 58 04 41 44 44 41 00 84 12 5C 5A
+E0 00 9A 58 04 53 55 42 41 00 84 12 5C 5A F0 00
+78 5A 05 43 41 4C 4C 41 87 12 A4 47 D6 44 B0 5A
+1B 42 C6 1D A2 53 C6 1D 6E 4E 3C 40 34 01 7E 90
+52 00 0B 20 7E 40 20 00 B0 12 6C 53 5C 0E 0C DE
+8B 4C 00 00 3E 4F 3D 41 30 4D 2C 53 7E 90 40 00
+0B 20 92 53 C4 1D 7E 40 20 00 B0 12 6C 53 EE 23
+1C 53 3E 40 2B 00 E8 3F A2 53 C6 1D 7E 90 23 00
+09 20 3C 40 3B 01 92 53 C4 1D B0 12 12 53 BB 4F
+02 00 DC 3F 7E 90 26 00 02 20 2C 53 F4 3F 7E 40
+28 00 1C 83 B0 12 12 53 BB 4F 02 00 3E 40 29 00
+CB 3F 87 12 A4 47 D6 44 3A 5B 69 4E 3E 4F 3C 40
+00 18 79 90 52 00 05 20 B0 12 6C 53 0E 4C 3D 41
+30 4D 82 43 C6 5F 79 90 23 00 0B 20 92 53 C4 1D
+B0 12 12 53 2F 53 3E F0 0F 00 5E 0A 5E 0E 0C DE
+ED 3F 79 90 26 00 F2 27 79 90 40 00 12 20 92 53
+C4 1D B0 12 6C 53 E2 23 3E 40 2B 00 92 53 C4 1D
+B0 12 6C 53 92 92 C0 1D C4 1D D8 27 92 53 C4 1D
+D5 3F 3E 40 28 00 B0 12 12 53 8F 4E 00 00 3E 40
+29 00 B0 12 6C 53 3E 4F 3E F0 0F 00 0C DE EA 3F
+87 12 A4 47 D6 44 C8 5B 3C 4F 69 4E 3E 40 20 00
+79 90 52 00 BB 27 82 43 C6 5F 79 90 26 00 08 20
+92 53 C4 1D B0 12 12 53 2F 53 3E F0 0F 00 BF 3F
+3E 40 28 00 B0 12 12 53 F7 3F 1B 42 C6 1D A2 53
+C6 1D 0C 4E 3E 4F 1C D2 C6 5F 82 43 C6 5F 3C DE
+8B 4C 00 00 B2 41 C4 1D 30 4D 76 44 C4 1D EA 40
+86 40 76 44 2C 00 32 5B C0 5B FA 5B 3C 42 A4 54
+6A 5A 04 4D 4F 56 58 00 84 12 1A 5C 40 00 00 40
+32 5C 06 4D 4F 56 58 2E 41 00 84 12 1A 5C 00 00
+40 40 42 5C 06 4D 4F 56 58 2E 42 00 84 12 1A 5C
+40 00 40 40 86 5A 04 41 44 44 58 00 84 12 1A 5C
+40 00 00 50 66 5C 06 41 44 44 58 2E 41 00 84 12
+1A 5C 00 00 40 50 76 5C 06 41 44 44 58 2E 42 00
+84 12 1A 5C 40 00 40 50 88 5C 05 41 44 44 43 58
+84 12 1A 5C 40 00 00 60 9A 5C 07 41 44 44 43 58
+2E 41 84 12 1A 5C 00 00 40 60 AA 5C 07 41 44 44
+43 58 2E 42 84 12 1A 5C 40 00 40 60 94 5A 05 53
+55 42 43 58 84 12 1A 5C 40 00 00 70 CE 5C 07 53
+55 42 43 58 2E 41 84 12 1A 5C 00 00 40 70 DE 5C
+07 53 55 42 43 58 2E 42 84 12 1A 5C 40 00 40 70
+F0 5C 04 53 55 42 58 00 84 12 1A 5C 40 00 00 80
+02 5D 06 53 55 42 58 2E 41 00 84 12 1A 5C 00 00
+40 80 12 5D 06 53 55 42 58 2E 42 00 84 12 1A 5C
+40 00 40 80 A2 5A 04 43 4D 50 58 00 84 12 1A 5C
+40 00 00 90 36 5D 06 43 4D 50 58 2E 41 00 84 12
+1A 5C 00 00 40 90 46 5D 06 43 4D 50 58 2E 42 00
+84 12 1A 5C 40 00 40 90 2E 58 05 44 41 44 44 58
+84 12 1A 5C 40 00 00 A0 6A 5D 07 44 41 44 44 58
+2E 41 84 12 1A 5C 00 00 40 A0 7A 5D 07 44 41 44
+44 58 2E 42 84 12 1A 5C 40 00 40 A0 58 5D 04 42
+49 54 58 00 84 12 1A 5C 40 00 00 B0 9E 5D 06 42
+49 54 58 2E 41 00 84 12 1A 5C 00 00 40 B0 AE 5D
+06 42 49 54 58 2E 42 00 84 12 1A 5C 40 00 40 B0
+C0 5D 04 42 49 43 58 00 84 12 1A 5C 40 00 00 C0
+D2 5D 06 42 49 43 58 2E 41 00 84 12 1A 5C 00 00
+40 C0 E2 5D 06 42 49 43 58 2E 42 00 84 12 1A 5C
+40 00 40 C0 F4 5D 04 42 49 53 58 00 84 12 1A 5C
+40 00 00 D0 06 5E 06 42 49 53 58 2E 41 00 84 12
+1A 5C 00 00 40 D0 16 5E 06 42 49 53 58 2E 42 00
+84 12 1A 5C 40 00 40 D0 D4 55 04 58 4F 52 58 00
+84 12 1A 5C 40 00 00 E0 3A 5E 06 58 4F 52 58 2E
+41 00 84 12 1A 5C 00 00 40 E0 4A 5E 06 58 4F 52
+58 2E 42 00 84 12 1A 5C 40 00 40 E0 BC 5C 04 41
+4E 44 58 00 84 12 1A 5C 40 00 00 F0 6E 5E 06 41
+4E 44 58 2E 41 00 84 12 1A 5C 00 00 40 F0 7E 5E
+06 41 4E 44 58 2E 42 00 84 12 1A 5C 40 00 40 F0
+76 44 C4 1D EA 40 86 40 A4 47 32 5B FA 5B 3C 42
+FA 55 24 5D 04 52 52 43 58 00 84 12 A0 5E 40 00
+00 10 B4 5E 06 52 52 43 58 2E 41 00 84 12 A0 5E
+00 00 40 10 C4 5E 06 52 52 43 58 2E 42 00 84 12
+A0 5E 40 00 40 10 D6 5E 04 52 52 55 58 00 84 12
+A0 5E 40 01 00 10 E8 5E 06 52 52 55 58 2E 41 00
+84 12 A0 5E 00 01 40 10 F8 5E 06 52 52 55 58 2E
+42 00 84 12 A0 5E 40 01 40 10 0A 5F 05 53 57 50
+42 58 84 12 A0 5E 40 00 80 10 1C 5F 07 53 57 50
+42 58 2E 41 84 12 A0 5E 00 00 80 10 2C 5F 04 52
+52 41 58 00 84 12 A0 5E 40 00 00 11 3E 5F 06 52
+52 41 58 2E 41 00 84 12 A0 5E 00 00 40 11 4E 5F
+06 52 52 41 58 2E 42 00 84 12 A0 5E 40 00 40 11
+60 5F 04 53 58 54 58 00 84 12 A0 5E 40 00 80 11
+72 5F 06 53 58 54 58 2E 41 00 84 12 A0 5E 00 00
+80 11 EA 57 05 50 55 53 48 58 84 12 A0 5E 40 00
+00 12 94 5F 07 50 55 53 48 58 2E 41 84 12 A0 5E
+00 00 40 12 A4 5F 07 50 55 53 48 58 2E 42 84 12
+A0 5E 40 00 40 12 00 00 82 5F 03 52 50 54 87 12
+A4 47 D6 44 D6 5F 29 4E 7E 40 20 00 79 90 52 00
+06 20 B0 12 6C 53 03 24 3E D0 80 00 05 3C B0 12
+12 53 1E 83 3E F0 0F 00 82 4E C6 5F 3E 4F 3D 41
+30 4D 1A 43 25 3C D2 C3 23 02 E2 B2 60 02 02 24
+30 40 E8 50 1A 52 04 20 19 62 06 20 92 43 14 20
+A2 93 02 20 07 24 0A 5A 49 69 82 4A 16 20 C2 49
+18 20 0A 3C C2 4A 15 20 8A 10 C2 4A 16 20 C2 49
+17 20 89 10 C2 49 18 20 B0 12 8A 60 5A 53 FC 23
+39 40 05 00 D2 49 14 20 4E 06 82 93 46 06 05 24
+92 B3 6C 06 FD 27 C2 93 4C 06 59 83 F3 2F 19 83
+0B 30 F2 43 4E 06 82 93 46 06 03 24 92 B3 6C 06
+FD 27 5A 92 4C 06 F3 23 30 41 19 43 3A 43 8A 10
+C2 4A 4E 06 82 93 46 06 05 24 92 B3 6C 06 FD 27
+C2 93 4C 06 19 83 F3 23 5A 42 4C 06 30 41 1A 52
+08 20 09 43 1C D3 F2 40 51 00 19 20 B0 12 06 60
+33 20 B0 12 8A 60 6A 53 04 24 FB 23 D9 42 4C 06
+FF 1D F2 43 4E 06 03 43 19 53 39 90 01 02 F6 23
+F2 43 4E 06 3C C0 03 00 D2 D3 23 02 30 41 09 43
+2C D3 F0 40 58 00 23 BF B0 12 06 60 15 20 3A 40
+FE FF 29 43 B0 12 8E 60 D2 49 00 1E 4E 06 03 43
+19 53 39 90 00 02 F8 23 39 40 03 00 B0 12 8C 60
+7A C0 E1 00 6A 92 DE 27 8C 10 1C 52 4C 06 D2 D3
+23 02 87 12 80 44 0B 3C 20 53 44 20 45 72 72 6F
+72 21 44 61 2F 83 8F 4E 00 00 B2 40 10 00 DC 1D
+0E 4C B0 12 2A 40 24 42 F2 48 92 4B 0E 00 22 20
+92 4B 10 00 24 20 5A 42 23 20 58 42 22 20 92 93
+02 20 08 24 59 42 24 20 89 10 0A 59 88 10 08 58
+0A 6A 88 10 08 58 30 41 82 43 1C 20 92 42 0E 20
+1A 20 C2 93 24 20 03 20 92 93 22 20 14 24 92 42
+22 20 D0 04 92 42 24 20 D2 04 92 42 12 20 C8 04
+92 42 E4 04 1A 20 92 42 E6 04 1C 20 92 52 10 20
+1A 20 82 63 1C 20 30 41 92 4B 0E 00 22 20 92 4B
+10 00 24 20 B0 12 88 61 5A 4B 03 00 82 5A 1A 20
+82 63 1C 20 30 41 09 93 07 24 F8 90 20 00 00 1E
+03 20 18 53 19 83 F9 23 30 41 1B 42 32 20 82 43
+1E 20 B2 90 00 02 20 20 A8 20 BB 80 00 02 12 00
+8B 73 14 00 DB 53 03 00 DB 92 12 20 03 00 11 28
+CB 43 03 00 B0 12 5A 61 B0 12 AE 60 8B 43 10 00
+9B 48 00 1E 0E 00 92 93 02 20 03 24 9B 48 02 1E
+10 00 B2 40 00 02 20 20 8B 93 14 00 0B 20 92 9B
+12 00 1E 20 82 2C BB 90 00 02 12 00 03 2C 92 4B
+12 00 20 20 B0 12 C8 61 1A 42 1A 20 19 42 1C 20
+21 3F 3C 42 3B 40 38 20 09 43 CB 93 02 00 10 24
+9B 92 24 20 0C 00 04 20 9B 92 22 20 0A 00 07 24
+09 4B 3B 50 1C 00 3B 90 18 21 EF 23 0C 5C 30 41
+0C 43 82 4B 32 20 8B 49 00 00 09 93 0A 24 99 52
+C4 1D 16 00 4A 93 05 34 C9 93 02 00 02 34 5A 59
+02 00 CB 4A 02 00 CB 43 03 00 9B 42 1A 20 04 00
+9B 42 1C 20 06 00 18 42 30 20 8B 48 08 00 9B 48
+1A 1E 0A 00 9B 48 14 1E 0C 00 9B 48 1A 1E 0E 00
+9B 48 14 1E 10 00 9B 48 1C 1E 12 00 9B 48 1E 1E
+14 00 82 43 1E 20 6A 93 5F 27 C9 37 8B 43 16 00
+7A 93 02 24 07 38 95 3F B2 40 1C 21 EC 43 B2 40
+EA 42 50 43 9B 42 C0 1D 18 00 9B 82 C4 1D 18 00
+9B 42 C2 1D 1A 00 9B 52 C4 1D 1A 00 82 3F CB 43
+02 00 2B 4B 82 4B 32 20 0B 93 06 24 92 4B 16 00
+1E 20 B0 12 42 62 22 C3 30 41 1B 42 32 20 0B 93
+FB 27 EB 93 02 00 04 20 B0 12 B0 67 B0 12 78 67
+CB 93 02 00 E4 37 1E 4B 18 00 9F 4B 1A 00 00 00
+31 50 06 00 3D 41 B0 12 3E 63 02 24 30 40 24 44
+B2 40 3C 1D EC 43 B2 40 52 43 50 43 30 40 0E 44
+9E 4E 85 52 45 41 44 22 5A 43 19 3C 40 4F 86 57
+52 49 54 45 22 00 6A 43 12 3C 06 4E 84 44 45 4C
+22 00 6A 42 0C 3C D2 51 05 43 4C 4F 53 45 B0 12
+5A 63 30 4D E6 52 85 4C 4F 41 44 22 7A 43 2F 83
+8F 4E 00 00 0E 4A 82 93 BE 1D 0A 24 87 12 76 44
+76 44 12 47 12 47 9A 44 76 44 0E 64 12 47 2A 40
+87 12 76 44 22 00 E2 44 86 47 0C 64 3D 41 35 4F
+0E 55 82 4E 36 20 1C 43 92 42 2C 20 22 20 92 42
+2E 20 24 20 0E 95 8D 24 F5 90 3A 00 01 00 01 20
+25 53 F5 90 5C 00 00 00 08 20 15 53 92 42 02 20
+22 20 82 43 24 20 0E 95 70 24 82 45 34 20 B0 12
+88 61 34 40 20 00 A2 93 02 20 04 24 92 92 22 20
+02 20 02 24 14 42 12 20 B0 12 68 62 2C 43 0A 43
+08 4A 58 0E 08 58 82 48 30 20 C8 93 00 1E 61 24
+39 42 F8 95 00 1E 04 20 18 53 19 83 FA 23 15 53
+F5 90 2E 00 FF FF 19 24 39 50 03 00 B0 12 E6 61
+06 20 F5 90 5C 00 FF FF 29 24 0E 95 27 28 15 42
+34 20 1A 53 3A 90 10 00 DB 23 92 53 1A 20 82 63
+1C 20 14 83 D1 23 2C 42 3C 3C F5 90 2E 00 FE FF
+EE 27 B0 12 E6 61 EB 23 39 40 03 00 F8 95 00 1E
+04 20 18 53 19 83 FA 23 09 3C 0E 95 E0 2F F5 90
+5C 00 FF FF DC 23 B0 12 E6 61 D9 23 18 42 30 20
+92 48 1A 1E 22 20 92 48 14 1E 24 20 F8 B0 10 00
+0B 1E 14 24 82 93 24 20 06 20 82 93 22 20 03 20
+92 42 02 20 22 20 0E 95 8E 2F 92 42 22 20 2C 20
+92 42 24 20 2E 20 8F 43 00 00 03 3C 2A 4F B0 12
+72 62 34 40 00 40 35 40 0E 40 3A 4F 3E 4F 0A 93
+04 24 7A 93 0D 20 0C 93 01 20 30 4D 87 12 80 44
+0B 3C 20 4F 70 65 6E 45 72 72 6F 72 3C 42 42 61
+1A 93 B6 20 0C 93 F2 23 30 4D A2 63 04 52 45 41
+44 00 2F 83 8F 4E 00 00 1E 42 32 20 B0 12 FA 61
+1E 82 32 20 30 4D 2C 43 12 12 2A 20 18 42 02 20
+08 58 2A 41 82 9A 0A 20 A1 24 B0 12 AE 60 09 43
+28 93 03 24 89 93 02 1E 03 20 89 93 00 1E 07 24
+09 58 39 90 00 02 F4 23 91 53 00 00 EA 3F 0C 43
+6A 41 B9 43 00 1E 28 93 0F 24 B9 40 FF 0F 02 1E
+09 11 8A 10 09 5A 5A 41 01 00 0A 11 09 10 82 4A
+28 20 82 49 26 20 07 3C 09 11 C2 49 26 20 C2 4A
+27 20 82 43 28 20 3A 41 82 4A 2A 20 30 41 0A 12
+1A 52 08 20 B0 12 EE 60 3A 41 1A 52 0C 20 30 40
+EE 60 F2 B0 40 00 A2 04 29 20 F2 B0 10 00 A2 04
+FC 27 5A 42 B0 04 4A 11 59 42 B4 04 F2 40 20 00
+C0 04 D2 42 B1 04 C8 04 1A 52 E4 04 D2 42 B5 04
+C8 04 19 52 E4 04 D2 42 B2 04 C0 04 B2 40 00 08
+C8 04 1A 52 E4 04 92 42 B6 04 C0 04 B2 80 BC 07
+C0 04 B2 40 00 02 C8 04 19 52 E4 04 30 41 22 2A
+2B 2C 2F 3A 3B 3C 3D 3E 3F 5B 5C 5D 7C 2E 29 92
+06 38 39 80 03 00 B0 12 CE 66 39 40 03 00 7A 4B
+C8 4A 00 1E 82 9B 36 20 12 28 0D 12 3D 40 0F 00
+3C 40 7E 66 7A 9C F3 27 1D 83 FC 23 3D 41 6A 9C
+E6 27 3A 80 21 00 EB 3B 18 53 19 83 E8 23 09 93
+06 24 F8 40 20 00 00 1E 18 53 19 83 FA 23 30 41
+2A 93 D8 20 2C 93 0D 24 0C 93 A7 24 87 12 80 44
+0C 3C 20 57 72 69 74 65 45 72 72 6F 72 00 3C 42
+42 61 B0 12 96 65 92 42 26 20 22 20 92 42 28 20
+24 20 B0 12 0E 66 B0 12 68 62 18 42 30 20 F8 40
+20 00 0B 1E B0 12 22 66 88 43 0C 1E 88 4A 0E 1E
+88 49 10 1E 88 49 12 1E 98 42 24 20 14 1E 98 42
+22 20 1A 1E 88 43 1C 1E 88 43 1E 1E 1C 43 1B 42
+34 20 82 9B 36 20 CA 27 FB 90 2E 00 00 00 C6 27
+39 40 0B 00 B0 12 9E 66 B0 12 BA 67 2A 43 B0 12
+72 62 0C 93 BB 23 30 4D 1A 4B 04 00 19 4B 06 00
+B0 12 B4 60 B0 12 22 66 18 4B 08 00 88 49 12 1E
+88 4A 16 1E 88 49 18 1E 98 4B 12 00 1C 1E 98 4B
+14 00 1E 1E 1A 4B 04 00 19 4B 06 00 30 40 F0 60
+9B 52 1E 20 12 00 8B 63 14 00 1A 42 1A 20 19 42
+1C 20 30 40 F0 60 B2 40 00 02 1E 20 1B 42 32 20
+B0 12 B0 67 82 43 1E 20 DB 53 03 00 DB 92 12 20
+03 00 22 20 CB 43 03 00 B0 12 5A 61 08 12 0A 12
+B0 12 96 65 2A 91 05 24 B0 12 0E 66 2A 41 B0 12
+AE 60 3A 41 38 41 98 42 26 20 00 1E 92 93 02 20
+03 24 98 42 28 20 02 1E B0 12 0E 66 9B 42 26 20
+0E 00 9B 42 28 20 10 00 30 40 C8 61 AE 63 05 57
+52 49 54 45 B0 12 C6 67 30 4D 58 4B 13 00 59 4B
+14 00 89 10 09 58 58 4B 15 00 5B 42 12 20 0A 43
+3C 42 08 11 09 10 4A 10 1C 83 0B 11 FA 2B 0A 11
+1C 83 FD 37 1B 42 32 20 19 5B 0A 00 18 6B 0C 00
+8B 49 0E 00 8B 48 10 00 CB 4A 03 00 1A 4B 12 00
+BB C0 FF 01 12 00 3A F0 FF 01 82 4A 1E 20 B0 12
+64 62 30 4D 0C 93 38 20 38 90 E0 01 03 2C C8 93
+20 1E 02 24 7C 40 E5 00 C8 4C 00 1E B0 12 BA 67
+B0 12 66 61 82 4A 2A 20 0B 4A B0 12 AE 60 1A 48
+00 1E 88 43 00 1E 92 93 02 20 09 24 19 48 02 1E
+88 43 02 1E 39 F0 FF 0F 39 90 FF 0F 02 20 3A 93
+0E 24 82 4A 22 20 82 49 24 20 B0 12 66 61 0B 9A
+E6 27 0A 12 0A 4B B0 12 0E 66 3A 41 DD 3F 0A 4B
+B0 12 0E 66 B0 12 5A 63 30 4D 38 4C 08 54 45 52
+4D 32 53 44 22 00 87 12 C2 63 76 44 02 00 02 47
+86 47 0E 64 26 69 3D 41 92 C3 DC 05 08 43 B0 12
+B6 42 92 B3 DC 05 FD 27 59 42 CC 05 69 92 0D 24
+C8 49 00 1E 18 53 38 90 FF 01 F3 2B 03 24 B0 12
+C6 67 EC 3F B0 12 C8 42 EC 3F B0 12 C8 42 82 48
+1E 20 B0 12 5A 63 30 4D
 @FFFE
-BC 53
+F6 50
 q
diff --git a/binaries/MSP_EXP430FR5994_4MHz.txt b/binaries/MSP_EXP430FR5994_4MHz.txt
deleted file mode 100644 (file)
index 3cb2256..0000000
+++ /dev/null
@@ -1,709 +0,0 @@
-@1800
-10 00 02 00 21 BB A0 0F 05 00 18 00 DE 6B 46 4F
-2C 01 FF B3 5A 44 6C 44 FC 62 38 63
-@4000
-2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
-8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 40
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 40 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 40 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 40 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 40 02 3E 52 00
-0E 12 3E 4F 30 4D 96 40 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 40 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 40 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 40 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 41 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 40 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 41 02 31 2D 00
-1E 83 30 4D D8 40 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 41
-02 30 3D 00 1E 83 0E 7E 30 4D 60 41 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 41 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 40 01 3E 3E 8F F4 3B EB 37 0E 41 02 42 4C 00
-85 12 20 00 AC 41 04 42 41 53 45 00 85 12 DC 1D
-C8 40 05 53 54 41 54 45 85 12 BE 1D 96 41 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 41 06 55 4D 2F
-4D 4F 44 00 30 12 62 40 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 40 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 41
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 41 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 42
-02 23 53 00 87 12 32 42 6A 42 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 42 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 41 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 41
-02 44 2E 00 87 12 D2 41 44 40 B0 40 4C 41 64 42
-BC 40 A2 42 7E 42 7C 45 44 45 2A 40 DC 41 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 40
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 42 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 40
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A 42
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 42 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 42 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 41 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 43 03 4B 45 59 30 40 A0 43
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 5A 44 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 6C 44 30 4D 0D 12
-3D 40 DE 43 1B 42 32 20 9B 42 1E 20 16 00 3A 4F
-09 4E 0E 43 1C 42 1E 20 1B 42 20 20 02 3C E0 43
-2D 83 0C 9B 14 2C 58 4C 00 1E 1C 53 78 90 20 00
-07 2C 78 90 0A 00 F5 23 82 4C 1E 20 3D 41 30 4D
-0E 99 56 24 CA 48 00 00 1A 53 1E 53 51 3C 1A 15
-B0 12 40 64 19 17 DE 3F 00 43 06 41 43 43 45 50
-54 00 30 40 26 44 3C 40 C8 44 3B 40 92 44 2D 15
-0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40
-BC 44 92 B3 DC 05 05 24 18 42 CC 05 38 90 0A 00
-04 20 21 53 39 40 80 44 4D 15 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C2 23 02 30 41 B2 40 13 00
-CE 05 E2 D2 23 02 30 41 00 00 05 53 4C 45 45 50
-30 40 84 44 12 D2 0A 18 FB 3F 21 52 3A 17 58 42
-CC 05 48 9C 08 2C 48 9B E9 27 78 92 11 20 2E 9F
-0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00 1E 53
-A2 B3 DC 05 FD 27 82 48 CE 05 30 4D BE 44 2D 83
-92 B3 DC 05 E4 23 FC 27 82 93 DE 1D 02 24 92 53
-DE 1D 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D B0 42
-04 45 4D 49 54 00 30 40 EA 44 08 4E 3E 4F E0 3F
-10 43 03 43 49 42 85 12 3C 1D 3F 80 06 00 8F 4E
-04 00 3E 40 54 00 9F 42 F8 44 00 00 AF 4F 02 00
-88 3F E0 44 04 45 43 48 4F 00 B2 40 82 48 B6 44
-82 43 DE 1D 30 4D E0 42 06 4E 4F 45 43 48 4F 00
-B2 40 30 4D B6 44 92 43 DE 1D 30 4D 9C 42 05 53
-50 41 43 45 2F 83 8F 4E 00 00 3E 40 20 00 CB 3F
-3E 45 06 53 50 41 43 45 53 00 0E 93 09 24 0D 12
-3D 40 66 45 EF 3F 68 45 2D 83 1E 83 EB 23 3D 41
-3E 4F 30 4D 66 43 04 54 59 50 45 00 0E 93 0F 24
-1E 15 3D 40 92 45 28 4F 7E 48 8F 48 00 00 2F 83
-AA 3F 94 45 2D 83 91 83 02 00 F5 23 1D 17 2F 53
-3E 4F 30 4D F2 44 02 43 52 00 30 40 AE 45 87 12
-BA 45 02 0D 0A 00 7C 45 2A 40 2F 82 8F 4E 02 00
-7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63 30 4D 52 45
-82 53 22 00 82 43 B4 1D 87 12 34 40 BA 45 30 48
-34 40 22 00 1E 46 E8 45 3D 41 B2 40 20 00 B4 1D
-6E 4E 1E 83 82 5E C6 1D 3E 4F 92 B3 C6 1D A2 63
-C6 1D 30 4D 28 45 82 2E 22 00 87 12 D4 45 34 40
-7C 45 30 48 2A 40 00 00 04 57 4F 52 44 00 3C 40
-C0 1D 39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 19 24
-7E 9A FC 27 1A 83 3B 40 60 00 C8 4C 00 00 09 9A
-0C 24 7C 4A 4E 9C 09 24 18 53 4B 9C F6 2F 7C 90
-7B 00 F3 2F 5C 82 B4 1D F0 3F 1A 82 C2 1D 82 4A
-C4 1D 1E 42 C6 1D 08 8E CE 48 00 00 30 4D 00 00
-04 46 49 4E 44 00 2F 83 0C 4E 65 4C 74 40 80 00
-3B 40 CA 1D 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
-1E 00 0E 58 2E 53 1E 4E FE FF 0E 93 F3 27 09 4E
-78 49 48 C4 48 95 F7 23 0A 4C FA 99 01 00 F3 23
-1A 53 58 83 FA 23 19 B3 09 63 0C 49 6A 4E 1E 43
-4A 93 01 30 2E 83 8F 4C 00 00 35 40 0E 40 34 40
-00 40 30 4D A2 41 07 3E 4E 55 4D 42 45 52 3C 4F
-38 4F 29 4F 2F 82 1B 42 DC 1D 6A 4C 7A 80 30 00
-7A 90 0A 00 05 28 7A 80 07 00 7A 90 0A 00 12 28
-0A 9B 22 C3 0F 2C 82 49 D0 04 82 48 D2 04 82 4B
-C8 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
-1E 83 E3 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
-30 4D 1B 42 DC 1D 0C 43 2D 15 3D 40 78 47 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90
-2D 00 04 28 CB 23 B1 43 02 00 E1 3F 2B 43 7A 80
-25 00 07 24 3B 52 6A 53 04 24 3B 40 10 00 5A 83
-BC 23 1C 53 1E 83 EA 3F 7A 47 2F 24 2D 83 7A 90
-28 00 CD 27 32 D0 00 02 7A 90 F7 00 C8 27 7A 90
-F5 00 23 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
-09 5C 69 49 79 80 30 00 79 90 0A 00 05 28 79 80
-07 00 79 90 0A 00 0A 28 09 9B 08 2C 8F 49 00 00
-0E 4B 2C 15 B0 12 E8 41 2A 17 E6 3F 9F 4F 04 00
-02 00 AF 4F 04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B
-DC 1D 06 24 32 C0 00 02 3F 50 06 00 0E F3 30 4D
-2F 53 9F 4F 02 00 04 00 BF 4F 00 00 3E E3 09 20
-3E E3 BF E3 02 00 BF E3 00 00 9F 53 02 00 8F 63
-00 00 32 B0 00 02 01 20 2F 53 30 4D 14 45 07 45
-58 45 43 55 54 45 0A 4E 3E 4F 00 4A 26 41 01 2C
-1A 42 C6 1D A2 53 C6 1D 8A 4E 00 00 3E 4F 30 4D
-2E 48 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
-1A 42 C6 1D A2 52 C6 1D BA 40 34 40 00 00 8A 4E
-02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
-02 00 8A 4E 02 00 0E 49 EB 3F 30 4D A6 45 05 43
-4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
-30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
-30 4D 87 12 92 48 B0 41 1E 46 AC 48 3D 40 B4 48
-E2 22 5D 3E B6 48 0A 4E 3E 4F 3D 40 CC 48 39 27
-3D 40 A6 48 1A E2 BE 1D B3 27 AD 23 CE 48 3E 4F
-3D 40 A6 48 BA 23 DE 53 00 00 68 4E 08 5E F8 40
-3F 00 00 00 3D 40 EC 4B CD 3F 1E 48 08 45 56 41
-4C 55 41 54 45 00 39 40 C0 1D 3C 49 3B 49 3A 49
-3D 15 B0 12 2A 40 A2 48 0A 49 B2 41 C4 1D B2 41
-C2 1D B2 41 C0 1D 3D 41 30 4D 82 43 08 18 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 30 4D 7E 48
-04 42 4F 4F 54 00 82 93 08 18 1D 24 E2 B2 60 02
-1A 20 2F 83 8F 4E 00 00 1E 42 08 18 B0 12 2A 40
-30 45 1A 49 BA 45 0F 4C 4F 41 44 22 20 42 4F 4F
-54 2E 34 54 48 22 24 43 82 49 6C 41 04 51 55 49
-54 00 30 40 76 49 B0 12 2A 40 1A 49 AA 45 FA 44
-44 45 A2 48 DE 40 70 41 BA 45 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 DA 49 34 40 30 FF F2 42
-8A 41 BA 45 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-DA 49 24 43 7C 49 1A 44 05 41 42 4F 52 54 3F 40
-80 1C D7 3F B8 49 86 41 42 4F 52 54 22 00 87 12
-D4 45 34 40 DA 49 30 48 2A 40 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 B2 51 1B 42 32 20 0B 93
-04 24 CB 43 02 00 2B 4B FA 3F B0 12 5A 44 92 C3
-DC 05 38 40 A8 2A 39 42 09 59 03 43 19 83 FD 23
-18 83 F9 23 92 B3 DC 05 F2 23 87 12 26 51 34 40
-DE 1D F2 40 1A 45 BA 45 04 1B 5B 37 6D 00 7C 45
-54 40 28 43 46 4A AA 45 BA 45 05 6C 69 6E 65 3A
-7C 45 40 41 D2 42 7C 45 BA 45 04 1B 5B 30 6D 00
-7C 45 BE 49 00 00 83 5B 27 5D 87 12 6C 4A 34 40
-34 40 30 48 30 48 2A 40 70 46 01 27 87 12 B0 41
-1E 46 76 46 28 43 7A 4A 2A 40 D6 48 CE 41 81 5C
-92 42 C0 1D C4 1D 30 4D 56 4A 81 5B 82 43 BE 1D
-30 4D 7E 4A 01 5D B2 43 BE 1D 30 4D BE 4F 02 00
-3E 4F 30 4D 72 43 82 49 53 00 87 12 C8 41 F2 40
-28 43 BE 4A 5A 4A 34 40 9C 4A 30 48 2A 40 6C 4A
-9C 4A 2A 40 A6 4A 09 49 4D 4D 45 44 49 41 54 45
-1A 42 B6 1D FA D0 80 00 00 00 30 4D D0 45 87 52
-45 43 55 52 53 45 19 42 C6 1D 99 42 BA 1D 00 00
-A2 53 C6 1D 30 4D 6C 49 88 50 4F 53 54 50 4F 4E
-45 00 87 12 B0 41 1E 46 76 46 54 40 28 43 7A 4A
-70 41 28 43 22 4B 34 40 34 40 30 48 30 48 34 40
-30 48 30 48 2A 40 8A 4A 81 3B 82 93 BE 1D A8 27
-87 12 34 40 2A 40 30 48 C0 4B 8C 4A 2A 40 28 4B
-07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E 00 00 1E 42
-C6 1D 0A 4E 39 40 00 02 38 40 02 02 B0 12 AC 4B
-BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 82 4F
-BC 1D 30 4D 40 4B 01 3A 30 12 60 4B 87 12 FA 45
-B0 41 1E 46 86 4B 3D 41 08 4E 7A 4E 5A D3 5A 53
-0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E 3E 4F
-BA 40 30 40 00 00 BA 40 72 4B 02 00 82 48 B6 1D
-82 49 B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D 30 41
-82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D A8 49
-FE FF 89 48 00 00 30 4D 87 12 BA 45 0F 73 74 61
-63 6B 20 6D 69 73 6D 61 74 63 68 21 E6 49 18 46
-08 56 41 52 49 41 42 4C 45 00 B0 12 7C 4B BA 40
-86 12 FC FF E4 3F 30 49 08 43 4F 4E 53 54 41 4E
-54 00 B0 12 7C 4B BA 40 85 12 FC FF 8A 4E FE FF
-3E 4F D5 3F 08 4C 06 43 52 45 41 54 45 00 B0 12
-7C 4B BA 40 85 12 FC FF 8A 4A FE FF C8 3F EC 48
-05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00
-8A 4D 02 00 3D 41 30 4D 40 4C 05 44 45 46 45 52
-30 12 CE 4B 8B 3F D6 46 05 3E 42 4F 44 59 2E 52
-30 4D 26 4C 04 43 4F 44 45 00 B0 12 7C 4B 2A 82
-82 4A C6 1D 87 12 6E 4B 50 4F 22 4F 2A 40 74 4C
-07 43 4F 44 45 4E 4E 4D 87 12 48 4B 8C 4A 7E 4C
-2A 40 00 00 07 45 4E 44 43 4F 44 45 87 12 6A 4F
-C0 4B 2A 40 C6 49 03 41 53 4D 92 42 DA 1D EC 1D
-B2 40 26 4F DA 1D D9 3F A4 4C 06 45 4E 44 41 53
-4D 00 92 42 EC 1D DA 1D E9 3F 00 00 05 43 4F 4C
-4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53 C6 1D
-B2 43 BE 1D 30 40 6A 4F 00 00 05 4C 4F 32 48 49
-1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A 40 02 00
-A2 52 C6 1D ED 3F C6 4A 85 48 49 32 4C 4F 87 12
-F2 42 48 4D 30 48 8C 4A 50 4F 22 4F 2A 40 18 4D
-82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D A2 52
-C6 1D BE 40 28 43 00 00 2E 53 30 4D 5A 4C 84 45
-4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40 24 43
-FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D 76 45 84 54
-48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D 90 4C
-85 42 45 47 49 4E 30 40 F2 42 6E 4D 85 55 4E 54
-49 4C 39 40 28 43 A2 52 C6 1D 1A 42 C6 1D 8A 49
-FC FF 8A 4E FE FF 3E 4F 30 4D B6 4C 85 41 47 41
-49 4E 39 40 24 43 EF 3F F0 4B 85 57 48 49 4C 45
-87 12 34 4D 78 40 2A 40 DE 4A 86 52 45 50 45 41
-54 00 87 12 B2 4D 74 4D 2A 40 4E 4D 82 44 4F 00
-2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D BE 40
-3C 43 FE FF A2 53 00 1C 1A 42 00 1C 8A 43 00 00
-30 4D 42 48 84 4C 4F 4F 50 00 39 40 5E 43 A2 52
-C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF 1E 42
-00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A 00 00
-F6 3F 3E 4F 30 4D 98 43 85 2B 4C 4F 4F 50 39 40
-4C 43 E5 3F 04 4E 85 4C 45 41 56 45 1A 42 C6 1D
-BA 40 6E 43 00 00 BA 40 24 43 02 00 B2 50 06 00
-C6 1D A2 53 00 1C 2A 52 19 42 00 1C 89 4A 00 00
-30 4D 46 4E 04 4D 4F 56 45 00 0A 4E 38 4F 39 4F
-3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49 00 00
-18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83 18 83
-E8 49 00 00 1A 83 FA 23 30 4D BA 4D 0A 56 4F 43
-41 42 55 4C 41 52 59 00 87 12 2E 4C 34 40 10 00
-34 40 00 00 3C 43 34 40 00 00 30 48 5E 43 C6 4E
-F2 42 34 40 C8 1D 44 40 F2 40 30 48 FA 40 46 4C
-34 40 CA 1D FA 40 2A 40 6A 4A 05 46 4F 52 54 48
-84 12 E0 4E 4A 4F 0E 66 02 66 EA 4E 30 4D 38 4E
-1C 66 7A 4F 4A 51 8C 6A 82 6B 7E 6A 00 00 88 50
-94 4A 68 4C 00 00 AC 4D 09 41 53 53 45 4D 42 4C
-45 52 84 12 E0 4E DC 60 74 60 D8 5F 6A 5B 12 5A
-8E 5B A0 5E 00 00 02 62 14 62 6A 5A A8 5A A8 60
-00 00 00 00 9C 5B 14 4F 18 4F 04 41 4C 53 4F 00
-3A 40 0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F F8 4A
-08 50 52 45 56 49 4F 55 53 00 3A 40 0E 00 39 40
-CC 1D 38 40 CA 1D 8A 3F 06 46 04 4F 4E 4C 59 00
-82 43 CC 1D 30 4D DC 4D 0B 44 45 46 49 4E 49 54
-49 4F 4E 53 92 42 CA 1D DA 1D 30 4D 80 4D 07 43
-4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53 F9 98
-FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D 76 4B
-86 5B 54 48 45 4E 5D 00 30 4D D0 4F 86 5B 45 4C
-53 45 5D 00 87 12 34 40 00 00 36 41 B0 41 1E 46
-84 48 44 40 28 43 4A 50 8A 40 8A 40 BA 45 06 5B
-54 48 45 4E 5D 00 A6 4F 32 43 18 50 9E 45 40 41
-54 40 32 43 EC 4F 2A 40 8A 40 8A 40 BA 45 06 5B
-45 4C 53 45 5D 00 A6 4F 32 43 38 50 9E 45 40 41
-54 40 32 43 EA 4F 2A 40 BA 45 04 5B 49 46 5D 00
-A6 4F 32 43 EC 4F 24 43 EA 4F 9E 45 BA 45 05 0D
-0A 6B 6F 20 7C 45 FA 44 92 48 24 43 EC 4F DC 4F
-84 5B 49 46 5D 00 0E 93 3E 4F BC 27 30 4D 60 50
-89 5B 44 45 46 49 4E 45 44 5D 87 12 B0 41 1E 46
-76 46 6C 40 2A 40 70 50 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 87 12 B0 41 1E 46 76 46 6C 40 64 41
-2A 40 A4 50 3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F
-44 3C 74 4E 06 4D 41 52 4B 45 52 00 B0 12 7C 4B
-BA 40 84 12 FC FF BA 40 A2 50 FE FF 9A 42 C8 1D
-00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40 C6 4B
-F0 4E 80 4F 94 4F E8 50 3A 4E 82 4A C8 1D 2E 4E
-82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83 18 48
-FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23 2A 4A
-0A 93 F0 23 3E 4F 3D 41 30 4D 60 4F 09 50 57 52
-5F 53 54 41 54 45 84 12 E0 50 46 4F DE 6B CA 4D
-09 52 53 54 5F 53 54 41 54 45 92 42 0E 18 2A 51
-92 42 0C 18 2C 51 EF 3F 1C 51 08 50 57 52 5F 48
-45 52 45 00 92 42 C8 1D 2A 51 92 42 C6 1D 2C 51
-30 4D 30 51 08 52 53 54 5F 48 45 52 45 00 92 42
-C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F AC 4E 04 57
-49 50 45 00 39 40 10 00 29 83 B9 43 80 FF FC 23
-B2 40 84 44 82 44 B2 40 0C 52 0A 52 B2 40 76 49
-74 49 B2 40 46 4F 0E 18 B2 40 DE 6B 0C 18 30 12
-3A 51 B2 40 EA 44 E8 44 B2 40 AE 45 AC 45 B2 40
-A0 43 9E 43 B2 40 26 44 24 44 B2 40 3C 1D F8 44
-B2 40 18 00 0A 18 37 40 1A 40 36 40 BC 40 35 40
-0E 40 34 40 00 40 39 40 10 00 29 83 89 43 E0 1D
-FC 23 B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41
-7E 51 04 57 41 52 4D 00 30 40 0C 52 3D 40 5A 53
-92 C3 30 01 1E 42 08 18 0E 93 9E 24 D2 B3 01 02
-02 20 3E E3 1E 53 F2 D0 03 00 0D 02 E2 B2 60 02
-8A 20 39 42 B0 12 D4 62 D2 C3 23 02 2C 42 B2 40
-95 00 14 20 B2 40 00 40 18 20 B0 12 4A 62 02 24
-30 40 70 63 B0 12 D2 62 7A 93 FC 23 B2 40 87 AA
-14 20 92 43 16 20 B2 40 00 48 18 20 B0 12 4A 62
-29 42 B0 12 D4 62 92 43 14 20 82 43 16 20 78 43
-3C 42 B2 40 00 77 18 20 B0 12 4A 62 B2 40 40 69
-18 20 B0 12 90 62 03 24 58 83 F3 23 D9 3F 0C 5C
-A2 43 16 20 B2 40 00 50 18 20 B0 12 90 62 D0 23
-92 D3 40 06 82 43 46 06 92 C3 40 06 B0 12 FA 62
-38 40 00 1E 92 48 C6 01 04 20 92 48 C8 01 06 20
-5A 48 C2 01 92 43 02 20 7A 80 06 00 0F 24 7A 82
-0D 24 A2 43 02 20 6A 53 09 24 5A 53 07 24 6A 52
-05 24 3A 50 0B 20 0C 4A 30 40 76 63 B0 12 FA 62
-D2 48 0D 00 12 20 19 48 0E 00 82 49 08 20 1A 48
-16 00 0A 93 02 20 1A 48 24 00 82 4A 0A 20 09 5A
-82 49 0C 20 09 5A A2 93 02 20 04 24 82 49 0E 20
-39 50 20 00 19 82 12 20 19 82 12 20 82 49 10 20
-92 42 02 20 2C 20 3E 90 0A 00 1C 27 3E 90 16 00
-19 2F 2E 93 E8 26 F1 2E 30 4D BA 45 06 0D 1B 5B
-37 6D 23 00 7C 45 E2 42 BA 45 1F 46 61 73 74 46
-6F 72 74 68 20 56 33 30 30 20 28 43 29 4A 2E 4D
-2E 54 68 6F 6F 72 65 6E 73 20 7C 45 34 40 80 FF
-F2 42 28 41 D2 42 BA 45 0B 62 79 74 65 73 20 66
-72 65 65 20 24 43 46 4A 9E 4F 04 43 4F 4C 44 00
-92 B3 CA 05 FD 23 B2 40 04 A5 20 01 B2 40 88 5A
-5C 01 B2 D0 03 00 04 02 B2 40 FC FF 02 02 B2 C0
-03 00 06 02 B2 43 26 02 B2 43 22 02 E2 D2 25 02
-B2 43 42 02 B2 D3 46 02 B2 43 62 02 B2 D3 66 02
-F2 43 26 03 F2 D3 22 03 F2 40 A5 00 61 01 B2 40
-06 00 62 01 82 43 66 01 39 40 40 00 B2 40 33 00
-64 01 D2 43 61 01 92 D2 9E 01 08 18 38 40 59 14
-18 83 FE 23 19 83 FA 23 F2 D0 10 00 2A 03 F2 40
-A5 00 A1 04 F2 C0 40 00 A2 04 B2 42 B0 01 39 40
-00 10 29 83 89 43 00 1C FC 23 39 40 4C 00 29 83
-B9 40 BC 53 B4 FF FB 23 B2 40 8A 44 F0 FF B2 40
-81 00 C0 05 92 42 02 18 C6 05 92 42 04 18 C8 05
-92 C3 C0 05 92 D3 DA 05 B2 40 81 A9 40 06 B2 40
-0C 00 46 06 D2 D3 25 02 B2 D0 C0 04 0C 02 92 C3
-40 06 3F 40 80 1C 31 40 E0 1C 30 12 08 52 98 3E
-38 40 C0 1D 39 48 2A 48 09 5A 1A 52 C4 1D 09 9A
-03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A C4 1D
-30 4D 64 51 09 32 43 4F 4E 53 54 41 4E 54 87 12
-2E 4C 30 48 30 48 46 4C DA 54 2F 83 9F 4E 02 00
-00 00 2E 4E 3D 41 30 4D C4 54 09 32 56 41 52 49
-41 42 4C 45 87 12 2E 4C 34 40 04 00 06 43 46 4C
-2A 40 1C 15 B0 12 2A 40 1E 46 76 46 32 43 18 55
-32 47 28 43 7A 4A 50 55 1A 55 29 4E 39 90 86 12
-02 20 2E 53 15 3C 39 90 85 12 03 20 1E 4E 02 00
-0F 3C 39 90 84 12 0C 20 2E 52 B9 90 D8 54 02 00
-04 24 B9 90 00 55 02 00 03 20 B0 12 DA 54 50 55
-1B 17 30 41 32 B0 00 02 01 24 3E 4F 30 41 3E 40
-28 00 B0 12 02 55 B0 12 54 55 19 42 C6 1D A2 53
-C6 1D 89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 1D
-92 53 C4 1D B0 12 2A 40 1E 46 32 47 28 43 9C 55
-92 55 21 53 3E 90 10 00 87 2D DA 2B 9E 55 B2 41
-C4 1D D6 3F 87 12 B0 41 A0 54 AC 55 0C 43 1B 42
-C6 1D A2 53 C6 1D 6A 4E 3E 4F 7A 90 23 00 2F 20
-92 53 C4 1D B0 12 02 55 B0 12 54 55 0E 93 03 20
-3C 40 00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C
-2E 93 03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40
-20 02 12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93
-03 20 3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 1D
-A2 53 C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90
-26 00 09 20 3C 40 10 02 92 53 C4 1D B0 12 02 55
-B0 12 54 55 EB 3F 7A 90 40 00 16 20 3C 40 20 00
-92 53 C4 1D B0 12 7A 55 0C 20 3C 50 10 00 3E 40
-2B 00 B0 12 7A 55 92 92 C0 1D C4 1D 02 24 92 53
-C4 1D 8E 10 0C 5E D8 3F B0 12 7A 55 FA 23 3C 50
-10 00 B0 12 5E 55 EF 3F 0C 43 1B 42 C6 1D A2 53
-C6 1D 87 12 B0 41 A0 54 8A 56 FE 90 26 00 00 00
-3E 40 20 00 03 20 3C 50 82 00 C6 3F B0 12 7A 55
-E1 23 3C 50 80 00 B0 12 5E 55 DC 3F 7A 44 04 52
-45 54 49 00 87 12 34 40 00 13 30 48 2A 40 34 40
-2C 00 A4 55 82 56 C8 56 2E 4E 0E DC 09 4B A2 3F
-FA 4C 03 4D 4F 56 84 12 BE 56 00 40 D2 56 05 4D
-4F 56 2E 42 84 12 BE 56 40 40 00 00 03 41 44 44
-84 12 BE 56 00 50 EC 56 05 41 44 44 2E 42 84 12
-BE 56 40 50 F8 56 04 41 44 44 43 00 84 12 BE 56
-00 60 06 57 06 41 44 44 43 2E 42 00 84 12 BE 56
-40 60 AE 56 04 53 55 42 43 00 84 12 BE 56 00 70
-24 57 06 53 55 42 43 2E 42 00 84 12 BE 56 40 70
-32 57 03 53 55 42 84 12 BE 56 00 80 42 57 05 53
-55 42 2E 42 84 12 BE 56 40 80 DC 4C 03 43 4D 50
-84 12 BE 56 00 90 5C 57 05 43 4D 50 2E 42 84 12
-BE 56 40 90 CA 4C 04 44 41 44 44 00 84 12 BE 56
-00 A0 76 57 06 44 41 44 44 2E 42 00 84 12 BE 56
-40 A0 68 57 03 42 49 54 84 12 BE 56 00 B0 94 57
-05 42 49 54 2E 42 84 12 BE 56 40 B0 A0 57 03 42
-49 43 84 12 BE 56 00 C0 AE 57 05 42 49 43 2E 42
-84 12 BE 56 40 C0 BA 57 03 42 49 53 84 12 BE 56
-00 D0 C8 57 05 42 49 53 2E 42 84 12 BE 56 40 D0
-00 00 03 58 4F 52 84 12 BE 56 00 E0 E2 57 05 58
-4F 52 2E 42 84 12 BE 56 40 E0 14 57 03 41 4E 44
-84 12 BE 56 00 F0 FC 57 05 41 4E 44 2E 42 84 12
-BE 56 40 F0 B0 41 A4 55 1A 58 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F 4E 57 03 52 52 43
-84 12 14 58 00 10 2C 58 05 52 52 43 2E 42 84 12
-14 58 40 10 38 58 04 53 57 50 42 00 84 12 14 58
-80 10 46 58 03 52 52 41 84 12 14 58 00 11 54 58
-05 52 52 41 2E 42 84 12 14 58 40 11 60 58 03 53
-58 54 84 12 14 58 80 11 00 00 04 50 55 53 48 00
-84 12 14 58 00 12 7A 58 06 50 55 53 48 2E 42 00
-84 12 14 58 40 12 D4 57 04 43 41 4C 4C 00 84 12
-14 58 80 12 1A 53 0E 4A 87 12 E2 42 BA 45 0D 6F
-75 74 20 6F 66 20 62 6F 75 6E 64 73 E6 49 B0 41
-A0 54 C4 58 92 53 C4 1D 3E 40 2C 00 B0 12 2A 40
-1E 46 32 47 28 43 7A 4A 78 56 DC 58 0A 4E 3E 4F
-1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
-0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92
-D1 2F 8A 10 5A 06 8F 3F 6E 58 06 52 52 43 4D 2E
-41 00 84 12 BE 58 40 00 0A 59 04 52 52 43 4D 00
-84 12 BE 58 50 00 1A 59 06 52 52 41 4D 2E 41 00
-84 12 BE 58 40 01 28 59 04 52 52 41 4D 00 84 12
-BE 58 50 01 38 59 06 52 4C 41 4D 2E 41 00 84 12
-BE 58 40 02 46 59 04 52 4C 41 4D 00 84 12 BE 58
-50 02 56 59 06 52 52 55 4D 2E 41 00 84 12 BE 58
-40 03 64 59 04 52 52 55 4D 00 84 12 BE 58 50 03
-88 58 07 50 55 53 48 4D 2E 41 84 12 BE 58 00 14
-82 59 05 50 55 53 48 4D 84 12 BE 58 00 15 92 59
-06 50 4F 50 4D 2E 41 00 84 12 BE 58 00 16 A0 59
-04 50 4F 50 4D 00 84 12 BE 58 00 17 85 12 00 3C
-74 59 03 53 3E 3D 85 12 00 38 C2 59 02 53 3C 00
-85 12 00 34 B0 59 03 30 3E 3D 85 12 00 30 D6 59
-02 30 3C 00 85 12 00 30 00 00 02 55 3C 00 85 12
-00 2C EA 59 03 55 3E 3D 85 12 00 28 E0 59 03 30
-3C 3E 85 12 00 24 FE 59 02 30 3D 00 85 12 00 20
-00 00 02 49 46 00 1A 42 C6 1D 8A 4E 00 00 A2 53
-C6 1D 0E 4A 30 4D F4 59 04 54 48 45 4E 00 1A 42
-C6 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
-00 02 31 2F 88 DA 00 00 30 4D 84 57 04 45 4C 53
-45 00 1A 42 C6 1D BA 40 00 3C 00 00 A2 53 C6 1D
-2F 83 8F 4A 00 00 E3 3F 28 5A 05 55 4E 54 49 4C
-3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11
-3A 90 00 FE 10 3B 3A F0 FF 03 08 DA 89 48 00 00
-A2 53 C6 1D 30 4D 08 58 05 41 47 41 49 4E 87 12
-BC 59 70 5A 2A 40 00 00 05 57 48 49 4C 45 87 12
-16 5A 78 40 2A 40 CC 59 06 52 45 50 45 41 54 00
-87 12 BC 59 70 5A 2E 5A 2A 40 CC 5A 3D 41 2E 4E
-08 4E 3E 4F 2A 48 0A 93 88 43 00 00 CA 23 98 42
-C6 1D 00 00 30 4D 98 58 03 42 57 31 84 12 CA 5A
-E0 1D E8 5A 03 42 57 32 84 12 CA 5A E2 1D F4 5A
-03 42 57 33 84 12 CA 5A E4 1D 0C 5B 3D 41 1A 42
-C6 1D 2E 4E 28 4E 08 93 8E 43 00 00 8B 23 BA 4F
-00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00
-03 46 57 31 84 12 0A 5B E6 1D 30 5B 03 46 57 32
-84 12 0A 5B E8 1D 3C 5B 03 46 57 33 84 12 0A 5B
-EA 1D 3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10
-02 24 3E E0 00 08 30 4D 48 5B 04 47 4F 54 4F 00
-87 12 BC 59 6C 4A 26 48 2A 40 00 00 05 3F 47 4F
-54 4F 87 12 52 5B 6C 4A 26 48 2A 40 00 00 03 4A
-4D 50 87 12 6C 4A 9E 5A 2A 40 7C 5B 04 3F 4A 4D
-50 00 87 12 52 5B 6C 4A 78 40 70 5A 2A 40 87 12
-B0 41 A0 54 B6 5B 69 4E 3E 4F 3C 4F 2C 4C 1B 42
-C6 1D A2 53 C6 1D 79 90 52 00 0A 20 B0 12 7A 55
-5E 0E 5E 0E 0E DC 8B 4E 00 00 0E 4B 3D 41 30 4D
-79 90 23 00 0D 20 3C C0 40 00 92 53 C4 1D A2 53
-C6 1D B0 12 02 55 BB 4F 02 00 3E F0 0F 00 E8 3F
-79 90 26 00 03 20 3C E0 E0 00 EF 3F 3C C0 F0 00
-79 90 40 00 12 20 92 53 C4 1D B0 12 7A 55 D8 23
-3C D0 10 00 3E 40 2B 00 B0 12 7A 55 92 92 C0 1D
-C4 1D CE 27 92 53 C4 1D CB 3F 3C D0 30 00 A2 53
-C6 1D 3E 40 28 00 B0 12 02 55 BB 4F 02 00 3E 40
-29 00 EA 3F 87 12 B0 41 A0 54 5C 5C 3B 4F 2C 4B
-69 4E 7E 40 20 00 79 90 52 00 03 20 B0 12 7A 55
-B1 3F 3C C0 F0 00 A2 53 C6 1D 79 90 26 00 09 20
-3C D0 60 00 92 53 C4 1D B0 12 02 55 BB 4F 02 00
-A1 3F 3C D0 70 00 3E 40 28 00 B0 12 02 55 BB 4F
-02 00 3E 40 29 00 E2 3F 34 40 2C 00 AE 5B 54 5C
-62 40 2A 40 DE 56 04 4D 4F 56 41 00 84 12 A8 5C
-C0 00 00 5B 04 43 4D 50 41 00 84 12 A8 5C D0 00
-98 5A 04 41 44 44 41 00 84 12 A8 5C E0 00 B8 5A
-04 53 55 42 41 00 84 12 A8 5C F0 00 C4 5C 05 43
-41 4C 4C 41 87 12 B0 41 A0 54 FC 5C 1B 42 C6 1D
-A2 53 C6 1D 6E 4E 3C 40 34 01 7E 90 52 00 0B 20
-7E 40 20 00 B0 12 7A 55 5C 0E 0C DE 8B 4C 00 00
-3E 4F 3D 41 30 4D 2C 53 7E 90 40 00 0B 20 92 53
-C4 1D 7E 40 20 00 B0 12 7A 55 EE 23 1C 53 3E 40
-2B 00 E8 3F A2 53 C6 1D 7E 90 23 00 09 20 3C 40
-3B 01 92 53 C4 1D B0 12 02 55 BB 4F 02 00 DC 3F
-7E 90 26 00 02 20 2C 53 F4 3F 7E 40 28 00 1C 83
-B0 12 02 55 BB 4F 02 00 3E 40 29 00 CB 3F 87 12
-B0 41 A0 54 86 5D 69 4E 3E 4F 3C 40 00 18 79 90
-52 00 05 20 B0 12 7A 55 0E 4C 3D 41 30 4D 82 43
-EE 1D 79 90 23 00 0B 20 92 53 C4 1D B0 12 02 55
-2F 53 3E F0 0F 00 5E 0A 5E 0E 0C DE ED 3F 79 90
-26 00 F2 27 79 90 40 00 12 20 92 53 C4 1D B0 12
-7A 55 E2 23 3E 40 2B 00 92 53 C4 1D B0 12 7A 55
-92 92 C0 1D C4 1D D8 27 92 53 C4 1D D5 3F 3E 40
-28 00 B0 12 02 55 8F 4E 00 00 3E 40 29 00 B0 12
-7A 55 3E 4F 3E F0 0F 00 0C DE EA 3F 87 12 B0 41
-A0 54 14 5E 3C 4F 69 4E 3E 40 20 00 79 90 52 00
-BB 27 82 43 EE 1D 79 90 26 00 08 20 92 53 C4 1D
-B0 12 02 55 2F 53 3E F0 0F 00 BF 3F 3E 40 28 00
-B0 12 02 55 F7 3F 1B 42 C6 1D A2 53 C6 1D 0C 4E
-3E 4F 1C D2 EE 1D 82 43 EE 1D 3C DE 8B 4C 00 00
-B2 41 C4 1D 30 4D 34 40 C4 1D F2 40 B0 40 34 40
-2C 00 7E 5D 0C 5E 46 5E 24 43 BE 56 B6 5C 04 4D
-4F 56 58 00 84 12 66 5E 40 00 00 40 7E 5E 06 4D
-4F 56 58 2E 41 00 84 12 66 5E 00 00 40 40 8E 5E
-06 4D 4F 56 58 2E 42 00 84 12 66 5E 40 00 40 40
-D2 5C 04 41 44 44 58 00 84 12 66 5E 40 00 00 50
-B2 5E 06 41 44 44 58 2E 41 00 84 12 66 5E 00 00
-40 50 C2 5E 06 41 44 44 58 2E 42 00 84 12 66 5E
-40 00 40 50 D4 5E 05 41 44 44 43 58 84 12 66 5E
-40 00 00 60 E6 5E 07 41 44 44 43 58 2E 41 84 12
-66 5E 00 00 40 60 F6 5E 07 41 44 44 43 58 2E 42
-84 12 66 5E 40 00 40 60 E0 5C 05 53 55 42 43 58
-84 12 66 5E 40 00 00 70 1A 5F 07 53 55 42 43 58
-2E 41 84 12 66 5E 00 00 40 70 2A 5F 07 53 55 42
-43 58 2E 42 84 12 66 5E 40 00 40 70 3C 5F 04 53
-55 42 58 00 84 12 66 5E 40 00 00 80 4E 5F 06 53
-55 42 58 2E 41 00 84 12 66 5E 00 00 40 80 5E 5F
-06 53 55 42 58 2E 42 00 84 12 66 5E 40 00 40 80
-EE 5C 04 43 4D 50 58 00 84 12 66 5E 40 00 00 90
-82 5F 06 43 4D 50 58 2E 41 00 84 12 66 5E 00 00
-40 90 92 5F 06 43 4D 50 58 2E 42 00 84 12 66 5E
-40 00 40 90 4C 5A 05 44 41 44 44 58 84 12 66 5E
-40 00 00 A0 B6 5F 07 44 41 44 44 58 2E 41 84 12
-66 5E 00 00 40 A0 C6 5F 07 44 41 44 44 58 2E 42
-84 12 66 5E 40 00 40 A0 A4 5F 04 42 49 54 58 00
-84 12 66 5E 40 00 00 B0 EA 5F 06 42 49 54 58 2E
-41 00 84 12 66 5E 00 00 40 B0 FA 5F 06 42 49 54
-58 2E 42 00 84 12 66 5E 40 00 40 B0 0C 60 04 42
-49 43 58 00 84 12 66 5E 40 00 00 C0 1E 60 06 42
-49 43 58 2E 41 00 84 12 66 5E 00 00 40 C0 2E 60
-06 42 49 43 58 2E 42 00 84 12 66 5E 40 00 40 C0
-40 60 04 42 49 53 58 00 84 12 66 5E 40 00 00 D0
-52 60 06 42 49 53 58 2E 41 00 84 12 66 5E 00 00
-40 D0 62 60 06 42 49 53 58 2E 42 00 84 12 66 5E
-40 00 40 D0 EE 57 04 58 4F 52 58 00 84 12 66 5E
-40 00 00 E0 86 60 06 58 4F 52 58 2E 41 00 84 12
-66 5E 00 00 40 E0 96 60 06 58 4F 52 58 2E 42 00
-84 12 66 5E 40 00 40 E0 08 5F 04 41 4E 44 58 00
-84 12 66 5E 40 00 00 F0 BA 60 06 41 4E 44 58 2E
-41 00 84 12 66 5E 00 00 40 F0 CA 60 06 41 4E 44
-58 2E 42 00 84 12 66 5E 40 00 40 F0 34 40 C4 1D
-F2 40 B0 40 B0 41 7E 5D 46 5E 24 43 14 58 70 5F
-04 52 52 43 58 00 84 12 EC 60 40 00 00 10 00 61
-06 52 52 43 58 2E 41 00 84 12 EC 60 00 00 40 10
-10 61 06 52 52 43 58 2E 42 00 84 12 EC 60 40 00
-40 10 22 61 04 52 52 55 58 00 84 12 EC 60 40 01
-00 10 34 61 06 52 52 55 58 2E 41 00 84 12 EC 60
-00 01 40 10 44 61 06 52 52 55 58 2E 42 00 84 12
-EC 60 40 01 40 10 56 61 05 53 57 50 42 58 84 12
-EC 60 40 00 80 10 68 61 07 53 57 50 42 58 2E 41
-84 12 EC 60 00 00 80 10 78 61 04 52 52 41 58 00
-84 12 EC 60 40 00 00 11 8A 61 06 52 52 41 58 2E
-41 00 84 12 EC 60 00 00 40 11 9A 61 06 52 52 41
-58 2E 42 00 84 12 EC 60 40 00 40 11 AC 61 04 53
-58 54 58 00 84 12 EC 60 40 00 80 11 BE 61 06 53
-58 54 58 2E 41 00 84 12 EC 60 00 00 80 11 08 5A
-05 50 55 53 48 58 84 12 EC 60 40 00 00 12 E0 61
-07 50 55 53 48 58 2E 41 84 12 EC 60 00 00 40 12
-F0 61 07 50 55 53 48 58 2E 42 84 12 EC 60 40 00
-40 12 CE 61 03 52 50 54 87 12 B0 41 A0 54 20 62
-29 4E 7E 40 20 00 79 90 52 00 06 20 B0 12 7A 55
-03 24 3E D0 80 00 04 3C B0 12 02 55 3E F0 0F 00
-82 4E EE 1D 3E 4F 3D 41 30 4D 1A 43 25 3C D2 C3
-23 02 E2 B2 60 02 02 24 30 40 B0 53 1A 52 04 20
-19 62 06 20 92 43 14 20 A2 93 02 20 07 24 0A 5A
-49 69 82 4A 16 20 C2 49 18 20 0A 3C C2 4A 15 20
-8A 10 C2 4A 16 20 C2 49 17 20 89 10 C2 49 18 20
-B0 12 D2 62 5A 53 FC 23 39 40 05 00 D2 49 14 20
-4E 06 82 93 46 06 05 24 92 B3 6C 06 FD 27 C2 93
-4C 06 59 83 F3 2F 19 83 0B 30 F2 43 4E 06 82 93
-46 06 03 24 92 B3 6C 06 FD 27 5A 92 4C 06 F3 23
-30 41 19 43 3A 43 8A 10 C2 4A 4E 06 82 93 46 06
-05 24 92 B3 6C 06 FD 27 C2 93 4C 06 19 83 F3 23
-5A 42 4C 06 30 41 1A 52 08 20 09 43 1C D3 F2 40
-51 00 19 20 B0 12 4E 62 33 20 B0 12 D2 62 6A 53
-04 24 FB 23 D9 42 4C 06 FF 1D F2 43 4E 06 03 43
-19 53 39 90 01 02 F6 23 F2 43 4E 06 3C C0 03 00
-D2 D3 23 02 30 41 09 43 2C D3 F0 40 58 00 DB BC
-B0 12 4E 62 15 20 3A 40 FE FF 29 43 B0 12 D6 62
-D2 49 00 1E 4E 06 03 43 19 53 39 90 00 02 F8 23
-39 40 03 00 B0 12 D4 62 7A C0 E1 00 6A 92 DE 27
-8C 10 1C 52 4C 06 D2 D3 23 02 87 12 1A 45 BA 45
-0B 3C 20 53 44 20 45 72 72 6F 72 21 8E 63 2F 83
-B2 40 10 00 DC 1D 0E 4C B0 12 2A 40 D2 42 E6 49
-92 4B 0E 00 22 20 92 4B 10 00 24 20 5A 42 23 20
-58 42 22 20 92 93 02 20 08 24 59 42 24 20 89 10
-0A 59 88 10 08 58 0A 6A 88 10 08 58 30 41 82 43
-1C 20 92 42 0E 20 1A 20 C2 93 24 20 03 20 92 93
-22 20 14 24 92 42 22 20 D0 04 92 42 24 20 D2 04
-92 42 12 20 C8 04 92 42 E4 04 1A 20 92 42 E6 04
-1C 20 92 52 10 20 1A 20 82 63 1C 20 30 41 92 4B
-0E 00 22 20 92 4B 10 00 24 20 B0 12 CE 63 5A 4B
-03 00 82 5A 1A 20 82 63 1C 20 30 41 09 93 07 24
-F8 90 20 00 00 1E 03 20 18 53 19 83 F9 23 30 41
-1B 42 32 20 82 43 1E 20 B2 90 00 02 20 20 A8 20
-BB 80 00 02 12 00 8B 73 14 00 DB 53 03 00 DB 92
-12 20 03 00 11 28 CB 43 03 00 B0 12 A0 63 B0 12
-F6 62 8B 43 10 00 9B 48 00 1E 0E 00 92 93 02 20
-03 24 9B 48 02 1E 10 00 B2 40 00 02 20 20 8B 93
-14 00 0B 20 92 9B 12 00 1E 20 82 2C BB 90 00 02
-12 00 03 2C 92 4B 12 00 20 20 B0 12 0E 64 1A 42
-1A 20 19 42 1C 20 22 3F 3C 42 3B 40 38 20 09 43
-CB 93 02 00 10 24 9B 92 24 20 0C 00 04 20 9B 92
-22 20 0A 00 07 24 09 4B 3B 50 1C 00 3B 90 18 21
-EF 23 0C 5C 30 41 0C 43 82 4B 32 20 8B 49 00 00
-09 93 0A 24 99 52 C4 1D 16 00 4A 93 05 34 C9 93
-02 00 02 34 5A 59 02 00 CB 4A 02 00 CB 43 03 00
-9B 42 1A 20 04 00 9B 42 1C 20 06 00 18 42 30 20
-8B 48 08 00 9B 48 1A 1E 0A 00 9B 48 14 1E 0C 00
-9B 48 1A 1E 0E 00 9B 48 14 1E 10 00 9B 48 1C 1E
-12 00 9B 48 1E 1E 14 00 82 43 1E 20 6A 93 5F 27
-C9 37 8B 43 16 00 7A 93 02 24 07 38 95 3F B2 40
-1C 21 F8 44 B2 40 BE 43 24 44 9B 42 C0 1D 18 00
-9B 82 C4 1D 18 00 9B 42 C2 1D 1A 00 9B 52 C4 1D
-1A 00 82 3F CB 43 02 00 2B 4B 82 4B 32 20 0B 93
-06 24 92 4B 16 00 1E 20 B0 12 88 64 22 C3 30 41
-1B 42 32 20 0B 93 FB 27 EB 93 02 00 04 20 B0 12
-00 6A B0 12 C8 69 CB 93 02 00 E4 37 1E 4B 18 00
-9F 4B 1A 00 00 00 31 50 06 00 3D 41 B0 12 84 65
-02 24 30 40 30 45 B2 40 3C 1D F8 44 B2 40 26 44
-24 44 30 40 1A 45 EA 54 85 52 45 41 44 22 5A 43
-19 3C 02 52 86 57 52 49 54 45 22 00 6A 43 12 3C
-88 4F 84 44 45 4C 22 00 6A 42 0C 3C AA 53 05 43
-4C 4F 53 45 B0 12 A0 65 30 4D B4 50 85 4C 4F 41
-44 22 7A 43 2F 83 8F 4E 00 00 0E 4A 82 93 BE 1D
-0A 24 87 12 34 40 34 40 30 48 30 48 D4 45 34 40
-54 66 30 48 2A 40 87 12 34 40 22 00 1E 46 84 48
-52 66 3D 41 35 4F 0E 55 82 4E 36 20 1C 43 92 42
-2C 20 22 20 92 42 2E 20 24 20 0E 95 8D 24 F5 90
-3A 00 01 00 01 20 25 53 F5 90 5C 00 00 00 08 20
-15 53 92 42 02 20 22 20 82 43 24 20 0E 95 70 24
-82 45 34 20 B0 12 CE 63 34 40 20 00 A2 93 02 20
-04 24 92 92 22 20 02 20 02 24 14 42 12 20 B0 12
-AE 64 2C 43 0A 43 08 4A 58 0E 08 58 82 48 30 20
-C8 93 00 1E 61 24 39 42 F8 95 00 1E 04 20 18 53
-19 83 FA 23 15 53 F5 90 2E 00 FF FF 19 24 39 50
-03 00 B0 12 2C 64 06 20 F5 90 5C 00 FF FF 29 24
-0E 95 27 28 15 42 34 20 1A 53 3A 90 10 00 DB 23
-92 53 1A 20 82 63 1C 20 14 83 D1 23 2C 42 3C 3C
-F5 90 2E 00 FE FF EE 27 B0 12 2C 64 EB 23 39 40
-03 00 F8 95 00 1E 04 20 18 53 19 83 FA 23 09 3C
-0E 95 E0 2F F5 90 5C 00 FF FF DC 23 B0 12 2C 64
-D9 23 18 42 30 20 92 48 1A 1E 22 20 92 48 14 1E
-24 20 F8 B0 10 00 0B 1E 14 24 82 93 24 20 06 20
-82 93 22 20 03 20 92 42 02 20 22 20 0E 95 8E 2F
-92 42 22 20 2C 20 92 42 24 20 2E 20 8F 43 00 00
-03 3C 2A 4F B0 12 B8 64 34 40 00 40 35 40 0E 40
-3A 4F 3E 4F 0A 93 04 24 7A 93 12 20 0C 93 01 20
-30 4D 87 12 BA 45 0B 3C 20 4F 70 65 6E 45 72 72
-6F 72 1A 45 F2 42 84 48 7C 45 44 45 24 43 8C 63
-1A 93 B6 20 0C 93 ED 23 30 4D E8 65 04 52 45 41
-44 00 2F 83 8F 4E 00 00 1E 42 32 20 B0 12 40 64
-1E 82 32 20 30 4D 2C 43 12 12 2A 20 18 42 02 20
-08 58 2A 41 82 9A 0A 20 A1 24 B0 12 F6 62 09 43
-28 93 03 24 89 93 02 1E 03 20 89 93 00 1E 07 24
-09 58 39 90 00 02 F4 23 91 53 00 00 EA 3F 0C 43
-6A 41 B9 43 00 1E 28 93 0F 24 B9 40 FF 0F 02 1E
-09 11 8A 10 09 5A 5A 41 01 00 0A 11 09 10 82 4A
-28 20 82 49 26 20 07 3C 09 11 C2 49 26 20 C2 4A
-27 20 82 43 28 20 3A 41 82 4A 2A 20 30 41 0A 12
-1A 52 08 20 B0 12 36 63 3A 41 1A 52 0C 20 30 40
-36 63 F2 B0 40 00 A2 04 29 20 F2 B0 10 00 A2 04
-FC 27 5A 42 B0 04 4A 11 59 42 B4 04 F2 40 20 00
-C0 04 D2 42 B1 04 C8 04 1A 52 E4 04 D2 42 B5 04
-C8 04 19 52 E4 04 D2 42 B2 04 C0 04 B2 40 00 08
-C8 04 1A 52 E4 04 92 42 B6 04 C0 04 B2 80 BC 07
-C0 04 B2 40 00 02 C8 04 19 52 E4 04 30 41 22 2A
-2B 2C 2F 3A 3B 3C 3D 3E 3F 5B 5C 5D 7C 2E 29 92
-06 38 39 80 03 00 B0 12 1E 69 39 40 03 00 7A 4B
-C8 4A 00 1E 82 9B 36 20 12 28 0D 12 3D 40 0F 00
-3C 40 CE 68 7A 9C F3 27 1D 83 FC 23 3D 41 6A 9C
-E6 27 3A 80 21 00 EB 3B 18 53 19 83 E8 23 09 93
-06 24 F8 40 20 00 00 1E 18 53 19 83 FA 23 30 41
-2A 93 EB 20 2C 93 0D 24 0C 93 BA 24 87 12 BA 45
-0C 3C 20 57 72 69 74 65 45 72 72 6F 72 00 24 43
-B2 67 B0 12 E6 67 92 42 26 20 22 20 92 42 28 20
-24 20 B0 12 5E 68 B0 12 AE 64 18 42 30 20 F8 40
-20 00 0B 1E B0 12 72 68 88 43 0C 1E 88 4A 0E 1E
-88 49 10 1E 88 49 12 1E 98 42 24 20 14 1E 98 42
-22 20 1A 1E 88 43 1C 1E 88 43 1E 1E 1C 43 1B 42
-34 20 82 9B 36 20 CA 27 FB 90 2E 00 00 00 C6 27
-39 40 0B 00 B0 12 EE 68 B0 12 0A 6A 2A 43 B0 12
-B8 64 0C 93 BB 23 30 4D 1A 4B 04 00 19 4B 06 00
-B0 12 FC 62 B0 12 72 68 18 4B 08 00 88 49 12 1E
-88 4A 16 1E 88 49 18 1E 98 4B 12 00 1C 1E 98 4B
-14 00 1E 1E 1A 4B 04 00 19 4B 06 00 30 40 38 63
-9B 52 1E 20 12 00 8B 63 14 00 1A 42 1A 20 19 42
-1C 20 30 40 38 63 B2 40 00 02 1E 20 1B 42 32 20
-B0 12 00 6A 82 43 1E 20 DB 53 03 00 DB 92 12 20
-03 00 22 20 CB 43 03 00 B0 12 A0 63 08 12 0A 12
-B0 12 E6 67 2A 91 05 24 B0 12 5E 68 2A 41 B0 12
-F6 62 3A 41 38 41 98 42 26 20 00 1E 92 93 02 20
-03 24 98 42 28 20 02 1E B0 12 5E 68 9B 42 26 20
-0E 00 9B 42 28 20 10 00 30 40 0E 64 F4 65 05 57
-52 49 54 45 B0 12 16 6A 30 4D CC 67 07 53 44 5F
-45 4D 49 54 B2 90 00 02 1E 20 02 28 B0 12 16 6A
-18 42 1E 20 C8 4E 00 1E 92 53 1E 20 3E 4F 30 4D
-58 4B 13 00 59 4B 14 00 89 10 09 58 58 4B 15 00
-5B 42 12 20 0A 43 3C 42 08 11 09 10 4A 10 1C 83
-0B 11 FA 2B 0A 11 1C 83 FD 37 1B 42 32 20 19 5B
-0A 00 18 6B 0C 00 8B 49 0E 00 8B 48 10 00 CB 4A
-03 00 1A 4B 12 00 BB C0 FF 01 12 00 3A F0 FF 01
-82 4A 1E 20 B0 12 AA 64 30 4D 0C 93 38 20 38 90
-E0 01 03 2C C8 93 20 1E 02 24 7C 40 E5 00 C8 4C
-00 1E B0 12 0A 6A B0 12 AC 63 82 4A 2A 20 0B 4A
-B0 12 F6 62 1A 48 00 1E 88 43 00 1E 92 93 02 20
-09 24 19 48 02 1E 88 43 02 1E 39 F0 FF 0F 39 90
-FF 0F 02 20 3A 93 0E 24 82 4A 22 20 82 49 24 20
-B0 12 AC 63 0B 9A E6 27 0A 12 0A 4B B0 12 5E 68
-3A 41 DD 3F 0A 4B B0 12 5E 68 B0 12 A0 65 30 4D
-8C 4D 08 54 45 52 4D 32 53 44 22 00 87 12 08 66
-34 40 02 00 F2 42 84 48 54 66 9C 6B 3D 41 92 C3
-DC 05 08 43 B0 12 5A 44 92 B3 DC 05 FD 27 59 42
-CC 05 69 92 0D 24 C8 49 00 1E 18 53 38 90 FF 01
-F3 2B 03 24 B0 12 16 6A EC 3F B0 12 6C 44 EC 3F
-B0 12 6C 44 82 48 1E 20 B0 12 A0 65 30 4D
-@FFFE
-BC 53
-q
index e805720..ba46cda 100644 (file)
 @1800
-10 00 04 00 51 55 40 1F 05 00 18 00 D8 6B 46 4F
-2C 01 FF B3 5A 44 6C 44 F6 62 32 63
+10 00 04 00 51 55 40 1F 05 00 18 00 64 69 C4 4D
+2D 01 FF B3 B6 42 C8 42 B0 60 EC 60
 @4000
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 40
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 40 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 40 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 40 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 40 02 3E 52 00
-0E 12 3E 4F 30 4D 96 40 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 40 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 40 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 40 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 41 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 40 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 41 02 31 2D 00
-1E 83 30 4D D8 40 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 41
-02 30 3D 00 1E 83 0E 7E 30 4D 60 41 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 41 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 40 01 3E 3E 8F F4 3B EB 37 0E 41 02 42 4C 00
-85 12 20 00 AC 41 04 42 41 53 45 00 85 12 DC 1D
-C8 40 05 53 54 41 54 45 85 12 BE 1D 96 41 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 41 06 55 4D 2F
-4D 4F 44 00 30 12 62 40 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 40 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 41
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 41 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 42
-02 23 53 00 87 12 32 42 6A 42 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 42 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 41 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 41
-02 44 2E 00 87 12 D2 41 44 40 B0 40 4C 41 64 42
-BC 40 A2 42 7E 42 7C 45 44 45 2A 40 DC 41 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 40
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 42 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 40
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A 42
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 42 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 42 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 41 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 43 03 4B 45 59 30 40 A0 43
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 5A 44 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 6C 44 30 4D 0D 12
-3D 40 DE 43 1B 42 32 20 9B 42 1E 20 16 00 3A 4F
-09 4E 0E 43 1C 42 1E 20 1B 42 20 20 02 3C E0 43
-2D 83 0C 9B 14 2C 58 4C 00 1E 1C 53 78 90 20 00
-07 2C 78 90 0A 00 F5 23 82 4C 1E 20 3D 41 30 4D
-0E 99 56 24 CA 48 00 00 1A 53 1E 53 51 3C 1A 15
-B0 12 3A 64 19 17 DE 3F 00 43 06 41 43 43 45 50
-54 00 30 40 26 44 3C 40 C8 44 3B 40 92 44 2D 15
-0A 4E 2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40
-BC 44 92 B3 DC 05 05 24 18 42 CC 05 38 90 0A 00
-04 20 21 53 39 40 80 44 4D 15 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C2 23 02 30 41 B2 40 13 00
-CE 05 E2 D2 23 02 30 41 00 00 05 53 4C 45 45 50
-30 40 84 44 12 D2 0A 18 FB 3F 21 52 3A 17 58 42
-CC 05 48 9C 08 2C 48 9B E9 27 78 92 11 20 2E 9F
-0F 24 1E 83 05 3C 0E 9A 03 24 CE 48 00 00 1E 53
-A2 B3 DC 05 FD 27 82 48 CE 05 30 4D BE 44 2D 83
-92 B3 DC 05 E4 23 FC 27 82 93 DE 1D 02 24 92 53
-DE 1D 3E 8F 3D 41 B2 40 18 00 0A 18 30 4D B0 42
-04 45 4D 49 54 00 30 40 EA 44 08 4E 3E 4F E0 3F
-10 43 03 43 49 42 85 12 3C 1D 3F 80 06 00 8F 4E
-04 00 3E 40 54 00 9F 42 F8 44 00 00 AF 4F 02 00
-88 3F E0 44 04 45 43 48 4F 00 B2 40 82 48 B6 44
-82 43 DE 1D 30 4D E0 42 06 4E 4F 45 43 48 4F 00
-B2 40 30 4D B6 44 92 43 DE 1D 30 4D 9C 42 05 53
-50 41 43 45 2F 83 8F 4E 00 00 3E 40 20 00 CB 3F
-3E 45 06 53 50 41 43 45 53 00 0E 93 09 24 0D 12
-3D 40 66 45 EF 3F 68 45 2D 83 1E 83 EB 23 3D 41
-3E 4F 30 4D 66 43 04 54 59 50 45 00 0E 93 0F 24
-1E 15 3D 40 92 45 28 4F 7E 48 8F 48 00 00 2F 83
-AA 3F 94 45 2D 83 91 83 02 00 F5 23 1D 17 2F 53
-3E 4F 30 4D F2 44 02 43 52 00 30 40 AE 45 87 12
-BA 45 02 0D 0A 00 7C 45 2A 40 2F 82 8F 4E 02 00
-7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63 30 4D 52 45
-82 53 22 00 82 43 B4 1D 87 12 34 40 BA 45 30 48
-34 40 22 00 1E 46 E8 45 3D 41 B2 40 20 00 B4 1D
-6E 4E 1E 83 82 5E C6 1D 3E 4F 92 B3 C6 1D A2 63
-C6 1D 30 4D 28 45 82 2E 22 00 87 12 D4 45 34 40
-7C 45 30 48 2A 40 00 00 04 57 4F 52 44 00 3C 40
-C0 1D 39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 19 24
-7E 9A FC 27 1A 83 3B 40 60 00 C8 4C 00 00 09 9A
-0C 24 7C 4A 4E 9C 09 24 18 53 4B 9C F6 2F 7C 90
-7B 00 F3 2F 5C 82 B4 1D F0 3F 1A 82 C2 1D 82 4A
-C4 1D 1E 42 C6 1D 08 8E CE 48 00 00 30 4D 00 00
-04 46 49 4E 44 00 2F 83 0C 4E 65 4C 74 40 80 00
-3B 40 CA 1D 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
-1E 00 0E 58 2E 53 1E 4E FE FF 0E 93 F3 27 09 4E
-78 49 48 C4 48 95 F7 23 0A 4C FA 99 01 00 F3 23
-1A 53 58 83 FA 23 19 B3 09 63 0C 49 6A 4E 1E 43
-4A 93 01 30 2E 83 8F 4C 00 00 35 40 0E 40 34 40
-00 40 30 4D A2 41 07 3E 4E 55 4D 42 45 52 3C 4F
-38 4F 29 4F 2F 82 1B 42 DC 1D 6A 4C 7A 80 30 00
-7A 90 0A 00 05 28 7A 80 07 00 7A 90 0A 00 12 28
-0A 9B 22 C3 0F 2C 82 49 D0 04 82 48 D2 04 82 4B
-C8 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
-1E 83 E3 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
-30 4D 1B 42 DC 1D 0C 43 2D 15 3D 40 78 47 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90
-2D 00 04 28 CB 23 B1 43 02 00 E1 3F 2B 43 7A 80
-25 00 07 24 3B 52 6A 53 04 24 3B 40 10 00 5A 83
-BC 23 1C 53 1E 83 EA 3F 7A 47 2F 24 2D 83 7A 90
-28 00 CD 27 32 D0 00 02 7A 90 F7 00 C8 27 7A 90
-F5 00 23 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
-09 5C 69 49 79 80 30 00 79 90 0A 00 05 28 79 80
-07 00 79 90 0A 00 0A 28 09 9B 08 2C 8F 49 00 00
-0E 4B 2C 15 B0 12 E8 41 2A 17 E6 3F 9F 4F 04 00
-02 00 AF 4F 04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B
-DC 1D 06 24 32 C0 00 02 3F 50 06 00 0E F3 30 4D
-2F 53 9F 4F 02 00 04 00 BF 4F 00 00 3E E3 09 20
-3E E3 BF E3 02 00 BF E3 00 00 9F 53 02 00 8F 63
-00 00 32 B0 00 02 01 20 2F 53 30 4D 14 45 07 45
-58 45 43 55 54 45 0A 4E 3E 4F 00 4A 26 41 01 2C
-1A 42 C6 1D A2 53 C6 1D 8A 4E 00 00 3E 4F 30 4D
-2E 48 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
-1A 42 C6 1D A2 52 C6 1D BA 40 34 40 00 00 8A 4E
-02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
-02 00 8A 4E 02 00 0E 49 EB 3F 30 4D A6 45 05 43
-4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
-30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
-30 4D 87 12 92 48 B0 41 1E 46 AC 48 3D 40 B4 48
-E2 22 5D 3E B6 48 0A 4E 3E 4F 3D 40 CC 48 39 27
-3D 40 A6 48 1A E2 BE 1D B3 27 AD 23 CE 48 3E 4F
-3D 40 A6 48 BA 23 DE 53 00 00 68 4E 08 5E F8 40
-3F 00 00 00 3D 40 EC 4B CD 3F 1E 48 08 45 56 41
-4C 55 41 54 45 00 39 40 C0 1D 3C 49 3B 49 3A 49
-3D 15 B0 12 2A 40 A2 48 0A 49 B2 41 C4 1D B2 41
-C2 1D B2 41 C0 1D 3D 41 30 4D 82 43 08 18 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 30 4D 7E 48
-04 42 4F 4F 54 00 82 93 08 18 1D 24 E2 B2 60 02
-1A 20 2F 83 8F 4E 00 00 1E 42 08 18 B0 12 2A 40
-30 45 1A 49 BA 45 0F 4C 4F 41 44 22 20 42 4F 4F
-54 2E 34 54 48 22 24 43 82 49 6C 41 04 51 55 49
-54 00 30 40 76 49 B0 12 2A 40 1A 49 AA 45 FA 44
-44 45 A2 48 DE 40 70 41 BA 45 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 DA 49 34 40 30 FF F2 42
-8A 41 BA 45 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-DA 49 24 43 7C 49 1A 44 05 41 42 4F 52 54 3F 40
-80 1C D7 3F B8 49 86 41 42 4F 52 54 22 00 87 12
-D4 45 34 40 DA 49 30 48 2A 40 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 B2 51 1B 42 32 20 0B 93
-04 24 CB 43 02 00 2B 4B FA 3F B0 12 5A 44 92 C3
-DC 05 38 40 50 55 39 42 09 59 03 43 19 83 FD 23
-18 83 F9 23 92 B3 DC 05 F2 23 87 12 26 51 34 40
-DE 1D F2 40 1A 45 BA 45 04 1B 5B 37 6D 00 7C 45
-54 40 28 43 46 4A AA 45 BA 45 05 6C 69 6E 65 3A
-7C 45 40 41 D2 42 7C 45 BA 45 04 1B 5B 30 6D 00
-7C 45 BE 49 00 00 83 5B 27 5D 87 12 6C 4A 34 40
-34 40 30 48 30 48 2A 40 70 46 01 27 87 12 B0 41
-1E 46 76 46 28 43 7A 4A 2A 40 D6 48 CE 41 81 5C
-92 42 C0 1D C4 1D 30 4D 56 4A 81 5B 82 43 BE 1D
-30 4D 7E 4A 01 5D B2 43 BE 1D 30 4D BE 4F 02 00
-3E 4F 30 4D 72 43 82 49 53 00 87 12 C8 41 F2 40
-28 43 BE 4A 5A 4A 34 40 9C 4A 30 48 2A 40 6C 4A
-9C 4A 2A 40 A6 4A 09 49 4D 4D 45 44 49 41 54 45
-1A 42 B6 1D FA D0 80 00 00 00 30 4D D0 45 87 52
-45 43 55 52 53 45 19 42 C6 1D 99 42 BA 1D 00 00
-A2 53 C6 1D 30 4D 6C 49 88 50 4F 53 54 50 4F 4E
-45 00 87 12 B0 41 1E 46 76 46 54 40 28 43 7A 4A
-70 41 28 43 22 4B 34 40 34 40 30 48 30 48 34 40
-30 48 30 48 2A 40 8A 4A 81 3B 82 93 BE 1D A8 27
-87 12 34 40 2A 40 30 48 C0 4B 8C 4A 2A 40 28 4B
-07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E 00 00 1E 42
-C6 1D 0A 4E 39 40 00 02 38 40 02 02 B0 12 AC 4B
-BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 82 4F
-BC 1D 30 4D 40 4B 01 3A 30 12 60 4B 87 12 FA 45
-B0 41 1E 46 86 4B 3D 41 08 4E 7A 4E 5A D3 5A 53
-0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E 3E 4F
-BA 40 30 40 00 00 BA 40 72 4B 02 00 82 48 B6 1D
-82 49 B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D 30 41
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 40
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 40
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 40
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 40 02 3E 52 00 0E 12 3E 4F 30 4D 70 40 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 40 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 40 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 40
+01 21 BE 4F 00 00 3E 4F 30 4D CC 40 02 30 3D 00
+1E 83 0E 7E 30 4D FC 40 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 41 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 40 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 41 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 41 02 23 53 00 87 12 88 41 C0 41
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 41
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 40 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 41 34 40 86 40 D4 40 BA 41
+92 40 F8 41 D4 41 38 44 A4 47 E0 43 2A 40 22 41
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 41 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 42 18 42 CC 05 2F 83 8F 4E
+00 00 B0 12 B6 42 92 B3 DC 05 FD 27 1E 42 CC 05
+B0 12 C8 42 30 4D A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C2 23 02 30 41 B2 40 13 00 CE 05 E2 D2
+23 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 42
+B0 12 B6 42 12 D2 0A 18 F9 3F 0D 12 3D 40 0A 43
+1B 42 32 20 9B 42 1E 20 16 00 3A 4F 09 4E 0E 43
+1C 42 1E 20 1B 42 20 20 02 3C 0C 43 2D 83 0C 9B
+14 2C 58 4C 00 1E 1C 53 78 90 20 00 07 2C 78 90
+0A 00 F5 23 82 4C 1E 20 3D 41 30 4D 0E 99 3D 24
+CA 48 00 00 1A 53 1E 53 38 3C 1A 15 B0 12 F6 61
+19 17 DE 3F F0 40 06 41 43 43 45 50 54 00 30 40
+52 43 3C 40 C2 43 3B 40 8C 43 2D 15 0A 4E 2E 4F
+0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 B6 43 92 B3
+DC 05 05 24 18 42 CC 05 38 90 0A 00 9C 23 21 53
+3D 15 AC 3F 21 52 3A 17 58 42 CC 05 48 9C 08 2C
+48 9B 9A 27 78 92 11 20 2E 9F 0F 24 1E 83 05 3C
+0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 DC 05 FD 27
+82 48 CE 05 30 4D B8 43 2D 83 92 B3 DC 05 E4 23
+FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F 3D 41
+B2 40 18 00 0A 18 30 4D 9E 40 04 45 4D 49 54 00
+30 40 E4 43 08 4E 3E 4F E0 3F 85 12 3C 1D 3F 80
+06 00 8F 4E 04 00 3E 40 54 00 9F 42 EC 43 00 00
+AF 4F 02 00 A4 3F DA 43 04 45 43 48 4F 00 B2 40
+82 48 B0 43 82 43 DE 1D 30 4D 32 42 06 4E 4F 45
+43 48 4F 00 B2 40 30 4D B0 43 92 43 DE 1D 30 4D
+20 42 04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40
+4E 44 28 4F 7E 48 8F 48 00 00 2F 83 C9 3F 50 44
+2D 83 91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D
+D0 41 02 43 52 00 30 40 6A 44 87 12 80 44 02 0D
+0A 00 38 44 2A 40 2F 83 8F 4E 00 00 3E 4D 30 4D
+2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
+0D 63 30 4D F2 41 82 53 22 00 82 43 B4 1D 87 12
+76 44 80 44 12 47 76 44 22 00 E2 44 AE 44 B2 40
+20 00 B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41
+3E 4F 30 4D 1C 44 82 2E 22 00 87 12 9A 44 76 44
+38 44 12 47 2A 40 48 43 05 3C 00 00 04 57 4F 52
+44 00 48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52
+C4 1D 09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20
+0E 4A 1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D
+3B 40 60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C
+09 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82
+B4 1D F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D
+08 8E CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00
+2F 83 0C 4E 65 4C 74 40 80 00 3B 40 CA 1D 3E 4B
+0E 93 1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53
+1E 4E FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95
+F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23
+19 B3 09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83
+8F 4C 00 00 35 40 0E 40 34 40 00 40 30 4D 82 40
+07 3E 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82
+1B 42 DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28
+7A 80 07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C
+82 49 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04
+18 42 E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C
+00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02
+1B 42 DC 1D 0C 43 2D 15 3D 40 56 46 09 43 08 43
+3F 82 8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00
+04 28 C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00
+07 24 3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23
+1C 53 1E 83 EA 3F 58 46 2F 24 2D 83 7A 90 28 00
+CB 27 32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00
+23 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C
+69 49 79 80 30 00 79 90 0A 00 05 28 79 80 07 00
+79 90 0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E 41 2A 17 E6 3F 9F 4F 04 00 02 00
+AF 4F 04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D
+06 24 32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53
+9F 4F 02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3
+BF E3 02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00
+32 B0 00 02 01 20 2F 53 30 4D 7E 42 04 48 45 52
+45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 40
+01 2C 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F
+30 4D 46 43 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F
+30 4D 08 44 07 45 58 45 43 55 54 45 0A 4E 3E 4F
+00 4A 10 47 87 4C 49 54 45 52 41 4C 82 93 BE 1D
+0C 24 1A 42 C6 1D A2 52 C6 1D BA 40 76 44 00 00
+8A 4E 02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24
+19 4A 02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 62 44
+05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E
+FF FF 30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43
+C4 1D 30 4D 85 12 20 00 87 12 94 47 A4 47 E2 44
+B2 47 3D 40 BA 47 CC 22 82 3E BC 47 0A 4E 3E 4F
+3D 40 D2 47 23 27 3D 40 AC 47 1A E2 BE 1D A1 27
+B5 23 D4 47 3E 4F 3D 40 AC 47 B8 23 DE 53 00 00
+68 4E 08 5E F8 40 3F 00 00 00 3D 40 CC 4A CB 3F
+34 47 08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D
+3C 49 3B 49 3A 49 3D 15 B0 12 2A 40 A8 47 10 48
+B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D
+85 12 BE 1D 82 43 08 18 31 40 E0 1C B2 40 00 1C
+00 1C 82 43 BE 1D 30 4D 80 47 04 42 4F 4F 54 00
+82 93 08 18 1D 24 E2 B2 60 02 1A 20 2F 83 8F 4E
+00 00 1E 42 08 18 B0 12 2A 40 24 44 24 48 80 44
+0F 4C 4F 41 44 22 20 42 4F 4F 54 2E 34 54 48 22
+3C 42 8E 48 08 41 04 51 55 49 54 00 30 40 80 48
+B0 12 2A 40 24 48 66 44 EE 43 A4 47 E0 43 A8 47
+A4 40 0C 41 80 44 0C 73 74 61 63 6B 20 65 6D 70
+74 79 21 00 E6 48 76 44 30 FF 02 47 26 41 80 44
+0A 46 52 41 4D 20 66 75 6C 6C 21 00 E6 48 3C 42
+86 48 24 47 05 41 42 4F 52 54 3F 40 80 1C D6 3F
+C4 48 86 41 42 4F 52 54 22 00 87 12 9A 44 76 44
+E6 48 12 47 2A 40 8F 93 02 00 03 20 2F 52 3E 4F
+30 4D B0 12 EC 4E B0 12 B6 42 92 C3 DC 05 38 40
+50 55 39 42 03 43 19 83 FD 23 18 83 FA 23 92 B3
+DC 05 F3 23 87 12 60 4E 76 44 DE 1D EA 40 0E 44
+80 44 04 1B 5B 37 6D 00 38 44 58 40 40 42 40 49
+66 44 80 44 05 6C 69 6E 65 3A 38 44 D0 40 24 42
+38 44 80 44 04 1B 5B 30 6D 00 38 44 CA 48 00 00
+83 5B 27 5D 87 12 66 49 76 44 76 44 12 47 12 47
+2A 40 4A 45 01 27 87 12 A4 47 E2 44 50 45 40 42
+74 49 2A 40 DC 47 32 41 81 5C 92 42 C0 1D C4 1D
+30 4D 50 49 81 5B 82 43 BE 1D 30 4D 78 49 01 5D
+B2 43 BE 1D 30 4D BE 4F 02 00 3E 4F 30 4D FC 46
+82 49 53 00 87 12 20 48 EA 40 40 42 B8 49 54 49
+76 44 96 49 12 47 2A 40 66 49 96 49 2A 40 A0 49
+09 49 4D 4D 45 44 49 41 54 45 1A 42 B6 1D FA D0
+80 00 00 00 30 4D 76 48 88 50 4F 53 54 50 4F 4E
+45 00 87 12 A4 47 E2 44 50 45 58 40 40 42 74 49
+0C 41 40 42 02 4A 76 44 76 44 12 47 12 47 76 44
+12 47 12 47 2A 40 84 49 81 3B 82 93 BE 1D B5 27
+87 12 76 44 2A 40 12 47 A0 4A 86 49 2A 40 08 4A
+07 3A 4E 4F 4E 41 4D 45 30 12 46 4A 2F 83 8F 4E
+00 00 1E 42 C6 1D 1E B3 0E 63 0A 4E 39 40 00 02
+38 40 02 02 21 3C BA 40 87 12 FC FF A2 83 C6 1D
+B2 43 BE 1D 30 4D 20 4A 01 3A 30 12 46 4A 92 B3
+C6 1D A2 63 C6 1D 87 12 A4 47 E2 44 6E 4A 3D 41
+08 4E 7A 4E 5A D3 5A 53 0A 58 19 42 DA 1D 6E 4E
+3E F0 1E 00 09 5E 3E 4F 82 48 B6 1D 82 49 B8 1D
+82 4A BA 1D 82 4F BC 1D 2A 52 82 4A C6 1D 30 41
 82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D A8 49
-FE FF 89 48 00 00 30 4D 87 12 BA 45 0F 73 74 61
-63 6B 20 6D 69 73 6D 61 74 63 68 21 E6 49 18 46
-08 56 41 52 49 41 42 4C 45 00 B0 12 7C 4B BA 40
-86 12 FC FF E4 3F 30 49 08 43 4F 4E 53 54 41 4E
-54 00 B0 12 7C 4B BA 40 85 12 FC FF 8A 4E FE FF
-3E 4F D5 3F 08 4C 06 43 52 45 41 54 45 00 B0 12
-7C 4B BA 40 85 12 FC FF 8A 4A FE FF C8 3F EC 48
-05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00
-8A 4D 02 00 3D 41 30 4D 40 4C 05 44 45 46 45 52
-30 12 CE 4B 8B 3F D6 46 05 3E 42 4F 44 59 2E 52
-30 4D 26 4C 04 43 4F 44 45 00 B0 12 7C 4B 2A 82
-82 4A C6 1D 87 12 6E 4B 50 4F 22 4F 2A 40 74 4C
-07 43 4F 44 45 4E 4E 4D 87 12 48 4B 8C 4A 7E 4C
-2A 40 00 00 07 45 4E 44 43 4F 44 45 87 12 6A 4F
-C0 4B 2A 40 C6 49 03 41 53 4D 92 42 DA 1D EC 1D
-B2 40 26 4F DA 1D D9 3F A4 4C 06 45 4E 44 41 53
-4D 00 92 42 EC 1D DA 1D E9 3F 00 00 05 43 4F 4C
-4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53 C6 1D
-B2 43 BE 1D 30 40 6A 4F 00 00 05 4C 4F 32 48 49
-1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A 40 02 00
-A2 52 C6 1D ED 3F C6 4A 85 48 49 32 4C 4F 87 12
-F2 42 48 4D 30 48 8C 4A 50 4F 22 4F 2A 40 18 4D
-82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D A2 52
-C6 1D BE 40 28 43 00 00 2E 53 30 4D 5A 4C 84 45
-4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40 24 43
-FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D 76 45 84 54
-48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D 90 4C
-85 42 45 47 49 4E 30 40 F2 42 6E 4D 85 55 4E 54
-49 4C 39 40 28 43 A2 52 C6 1D 1A 42 C6 1D 8A 49
-FC FF 8A 4E FE FF 3E 4F 30 4D B6 4C 85 41 47 41
-49 4E 39 40 24 43 EF 3F F0 4B 85 57 48 49 4C 45
-87 12 34 4D 78 40 2A 40 DE 4A 86 52 45 50 45 41
-54 00 87 12 B2 4D 74 4D 2A 40 4E 4D 82 44 4F 00
-2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D BE 40
-3C 43 FE FF A2 53 00 1C 1A 42 00 1C 8A 43 00 00
-30 4D 42 48 84 4C 4F 4F 50 00 39 40 5E 43 A2 52
-C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF 1E 42
-00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A 00 00
-F6 3F 3E 4F 30 4D 98 43 85 2B 4C 4F 4F 50 39 40
-4C 43 E5 3F 04 4E 85 4C 45 41 56 45 1A 42 C6 1D
-BA 40 6E 43 00 00 BA 40 24 43 02 00 B2 50 06 00
-C6 1D A2 53 00 1C 2A 52 19 42 00 1C 89 4A 00 00
-30 4D 46 4E 04 4D 4F 56 45 00 0A 4E 38 4F 39 4F
-3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49 00 00
-18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83 18 83
-E8 49 00 00 1A 83 FA 23 30 4D BA 4D 0A 56 4F 43
-41 42 55 4C 41 52 59 00 87 12 2E 4C 34 40 10 00
-34 40 00 00 3C 43 34 40 00 00 30 48 5E 43 C6 4E
-F2 42 34 40 C8 1D 44 40 F2 40 30 48 FA 40 46 4C
-34 40 CA 1D FA 40 2A 40 6A 4A 05 46 4F 52 54 48
-84 12 E0 4E 4A 4F 08 66 FC 65 EA 4E 30 4D 38 4E
-16 66 7A 4F 4A 51 86 6A 7C 6B 78 6A 00 00 88 50
-94 4A 68 4C 00 00 AC 4D 09 41 53 53 45 4D 42 4C
-45 52 84 12 E0 4E D6 60 6E 60 D2 5F 64 5B 0C 5A
-88 5B 9A 5E 00 00 FC 61 0E 62 64 5A A2 5A A2 60
-00 00 00 00 96 5B 14 4F 18 4F 04 41 4C 53 4F 00
-3A 40 0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F F8 4A
-08 50 52 45 56 49 4F 55 53 00 3A 40 0E 00 39 40
-CC 1D 38 40 CA 1D 8A 3F 06 46 04 4F 4E 4C 59 00
-82 43 CC 1D 30 4D DC 4D 0B 44 45 46 49 4E 49 54
-49 4F 4E 53 92 42 CA 1D DA 1D 30 4D 80 4D 07 43
+FE FF 89 48 00 00 30 4D 87 12 80 44 0F 73 74 61
+63 6B 20 6D 69 73 6D 61 74 63 68 21 F2 48 F2 47
+05 44 45 46 45 52 B0 12 5E 4A BA 40 30 40 FC FF
+BA 40 54 4A FE FF E3 3F 3A 48 06 43 52 45 41 54
+45 00 B0 12 5E 4A BA 40 85 12 FC FF 8A 4A FE FF
+D6 3F D0 4A 05 44 4F 45 53 3E 1A 42 BA 1D BA 40
+84 12 00 00 8A 4D 02 00 3D 41 30 4D B0 45 05 3E
+42 4F 44 59 2E 52 30 4D EA 4A 04 43 4F 44 45 00
+B0 12 5E 4A 82 43 C2 5F A2 82 C6 1D 87 12 CE 4D
+A0 4D 2A 40 2A 4B 07 43 4F 44 45 4E 4E 4D B0 12
+2C 4A F0 3F 00 00 07 45 4E 44 43 4F 44 45 87 12
+E8 4D A0 4A 2A 40 D2 48 03 41 53 4D B2 40 A4 4D
+DA 1D DE 3F 56 4B 06 45 4E 44 41 53 4D 00 87 12
+5E 4B 12 4E 2A 40 00 00 05 43 4F 4C 4F 4E 1A 42
+C6 1D BA 40 87 12 00 00 A2 53 C6 1D B2 43 BE 1D
+30 40 E8 4D 00 00 05 4C 4F 32 48 49 1A 42 C6 1D
+BA 40 B0 12 00 00 BA 40 2A 40 02 00 A2 52 C6 1D
+ED 3F C0 49 85 48 49 32 4C 4F 87 12 02 47 F4 4B
+12 47 86 49 CE 4D A0 4D 2A 40 C4 4B 82 49 46 00
+2F 83 8F 4E 00 00 1E 42 C6 1D A2 52 C6 1D BE 40
+40 42 00 00 2E 53 30 4D 04 4B 84 45 4C 53 45 00
+A2 52 C6 1D 1A 42 C6 1D BA 40 3C 42 FC FF 8E 4A
+00 00 2A 83 0E 4A 30 4D 32 44 84 54 48 45 4E 00
+9E 42 C6 1D 00 00 3E 4F 30 4D 46 4B 85 42 45 47
+49 4E 30 40 02 47 1A 4C 85 55 4E 54 49 4C 39 40
+40 42 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E
+FE FF 3E 4F 30 4D 68 4B 85 41 47 41 49 4E 39 40
+3C 42 EF 3F DC 44 85 57 48 49 4C 45 87 12 E0 4B
+76 40 2A 40 96 44 86 52 45 50 45 41 54 00 87 12
+5E 4C 20 4C 2A 40 FA 4B 82 44 4F 00 2F 83 8F 4E
+00 00 A2 53 C6 1D 1E 42 C6 1D BE 40 54 42 FE FF
+A2 53 00 1C 1A 42 00 1C 8A 43 00 00 30 4D 44 47
+84 4C 4F 4F 50 00 39 40 76 42 A2 52 C6 1D 1A 42
+C6 1D 8A 49 FC FF 8A 4E FE FF 1E 42 00 1C A2 83
+00 1C 2E 4E 0E 93 03 24 8E 4A 00 00 F6 3F 3E 4F
+30 4D 90 42 85 2B 4C 4F 4F 50 39 40 64 42 E5 3F
+B0 4C 04 4D 4F 56 45 00 0A 4E 38 4F 39 4F 3E 4F
+0A 93 11 24 08 99 0F 24 06 2C F8 49 00 00 18 53
+1A 83 FB 23 30 4D 08 5A 09 5A 19 83 18 83 E8 49
+00 00 1A 83 FA 23 30 4D 66 4C 0A 56 4F 43 41 42
+55 4C 41 52 59 00 87 12 F2 4A 76 44 10 00 76 44
+00 00 54 42 76 44 00 00 12 47 76 42 44 4D 02 47
+76 44 C8 1D 34 40 EA 40 12 47 F2 40 0A 4B 76 44
+CA 1D F2 40 2A 40 64 49 05 46 4F 52 54 48 84 12
+5E 4D C8 4D C4 63 B8 63 68 4D DC 4B E4 4C D2 63
+F8 4D 84 4E 78 65 08 69 2A 68 00 00 B4 52 8E 49
+1E 4B 00 00 58 4C 09 41 53 53 45 4D 42 4C 45 52
+84 12 5E 4D 8C 5E 24 5E 88 5D 4C 59 F0 57 00 00
+50 5C 00 00 B2 5F C6 5F 48 58 86 58 58 5E 00 00
+00 00 28 59 92 4D 96 4D 04 41 4C 53 4F 00 3A 40
+0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F D8 49 08 50
+52 45 56 49 4F 55 53 00 3A 40 0E 00 39 40 CC 1D
+38 40 CA 1D 8A 3F C6 44 04 4F 4E 4C 59 00 82 43
+CC 1D 30 4D 88 4C 0B 44 45 46 49 4E 49 54 49 4F
+4E 53 92 42 CA 1D DA 1D 30 4D 6E 4D FE 4D 12 4E
+22 4E 3A 4E 82 4A C8 1D 2E 4E 82 4E C6 1D 3D 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98 FC 2B
+89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23 3E 4F
+3D 41 30 4D DE 4D 09 50 57 52 5F 53 54 41 54 45
+84 12 1A 4E C4 4D 64 69 76 4C 09 52 53 54 5F 53
+54 41 54 45 92 42 0E 18 64 4E 92 42 0C 18 66 4E
+EF 3F 56 4E 08 50 57 52 5F 48 45 52 45 00 92 42
+C8 1D 64 4E 92 42 C6 1D 66 4E 30 4D 6A 4E 08 52
+53 54 5F 48 45 52 45 00 92 42 C8 1D 0E 18 92 42
+C6 1D 0C 18 EC 3F 2A 4D 04 57 49 50 45 00 39 40
+10 00 29 83 B9 43 80 FF FC 23 B2 40 E0 42 DE 42
+B2 40 4A 4F 48 4F B2 40 80 48 7E 48 B2 40 C4 4D
+0E 18 B2 40 64 69 0C 18 30 12 74 4E B2 40 E4 43
+E2 43 B2 40 6A 44 68 44 B2 40 98 42 96 42 B2 40
+52 43 50 43 B2 40 3C 1D EC 43 1B 42 32 20 0B 93
+04 24 CB 43 02 00 2B 4B FA 3F B2 40 18 00 0A 18
+37 40 1A 40 36 40 92 40 35 40 0E 40 34 40 00 40
+B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41 B8 4E
+04 57 41 52 4D 00 30 40 4A 4F 3D 40 98 50 92 C3
+30 01 1E 42 08 18 0E 93 9E 24 D2 B3 01 02 02 20
+3E E3 1E 53 F2 D0 03 00 0D 02 E2 B2 60 02 8A 20
+39 42 B0 12 88 60 D2 C3 23 02 2C 42 B2 40 95 00
+14 20 B2 40 00 40 18 20 B0 12 FE 5F 02 24 30 40
+24 61 B0 12 86 60 7A 93 FC 23 B2 40 87 AA 14 20
+92 43 16 20 B2 40 00 48 18 20 B0 12 FE 5F 29 42
+B0 12 88 60 92 43 14 20 82 43 16 20 78 43 3C 42
+B2 40 00 77 18 20 B0 12 FE 5F B2 40 40 69 18 20
+B0 12 44 60 03 24 58 83 F3 23 D9 3F 0C 5C A2 43
+16 20 B2 40 00 50 18 20 B0 12 44 60 D0 23 92 D3
+40 06 82 43 46 06 92 C3 40 06 B0 12 AE 60 38 40
+00 1E 92 48 C6 01 04 20 92 48 C8 01 06 20 5A 48
+C2 01 92 43 02 20 7A 80 06 00 0F 24 7A 82 0D 24
+A2 43 02 20 6A 53 09 24 5A 53 07 24 6A 52 05 24
+3A 50 0B 20 0C 4A 30 40 2A 61 B0 12 AE 60 D2 48
+0D 00 12 20 19 48 0E 00 82 49 08 20 1A 48 16 00
+0A 93 02 20 1A 48 24 00 82 4A 0A 20 09 5A 82 49
+0C 20 09 5A A2 93 02 20 04 24 82 49 0E 20 39 50
+20 00 19 82 12 20 19 82 12 20 82 49 10 20 92 42
+02 20 2C 20 3E 90 0A 00 1A 27 3E 90 16 00 17 2F
+2E 93 E6 26 EF 2E 30 4D 80 44 06 0D 1B 5B 37 6D
+23 00 38 44 34 42 80 44 19 46 61 73 74 46 6F 72
+74 68 20 C2 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E
+73 20 38 44 76 44 30 FF 02 47 B8 40 24 42 80 44
+0A 62 79 74 65 73 20 66 72 65 65 00 3C 42 40 49
+2C 4C 04 43 4F 4C 44 00 92 B3 CA 05 FD 23 B2 40
+04 A5 20 01 98 50 B2 40 88 5A 5C 01 B2 D3 06 02
+B2 40 FC FF 02 02 B2 43 26 02 B2 D3 22 02 E2 D2
+25 02 B2 43 42 02 B2 D3 46 02 B2 43 62 02 B2 D3
+66 02 F2 43 26 03 F2 D3 22 03 F2 40 A5 00 61 01
+82 43 66 01 39 40 80 00 B2 40 33 00 64 01 D2 43
+61 01 92 D2 9E 01 08 18 38 40 59 14 18 83 FE 23
+19 83 FA 23 F2 D0 10 00 2A 03 F2 40 A5 00 A1 04
+F2 C0 40 00 A2 04 B2 42 B0 01 39 40 00 10 29 83
+89 43 00 1C FC 23 39 40 4C 00 29 83 B9 40 F6 50
+B4 FF FB 23 B2 40 84 43 F0 FF B2 40 81 00 C0 05
+92 42 02 18 C6 05 92 42 04 18 C8 05 92 C3 C0 05
+92 D3 DA 05 B2 40 81 A9 40 06 B2 40 18 00 46 06
+D2 D3 25 02 B2 D0 C0 04 0C 02 92 C3 40 06 3F 40
+80 1C 31 40 E0 1C 30 12 46 4F A7 3E E2 50 07 43
 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B
 0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53 F9 98
-FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D 76 4B
-86 5B 54 48 45 4E 5D 00 30 4D D0 4F 86 5B 45 4C
-53 45 5D 00 87 12 34 40 00 00 36 41 B0 41 1E 46
-84 48 44 40 28 43 4A 50 8A 40 8A 40 BA 45 06 5B
-54 48 45 4E 5D 00 A6 4F 32 43 18 50 9E 45 40 41
-54 40 32 43 EC 4F 2A 40 8A 40 8A 40 BA 45 06 5B
-45 4C 53 45 5D 00 A6 4F 32 43 38 50 9E 45 40 41
-54 40 32 43 EA 4F 2A 40 BA 45 04 5B 49 46 5D 00
-A6 4F 32 43 EC 4F 24 43 EA 4F 9E 45 BA 45 05 0D
-0A 6B 6F 20 7C 45 FA 44 92 48 24 43 EC 4F DC 4F
-84 5B 49 46 5D 00 0E 93 3E 4F BC 27 30 4D 60 50
-89 5B 44 45 46 49 4E 45 44 5D 87 12 B0 41 1E 46
-76 46 6C 40 2A 40 70 50 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 87 12 B0 41 1E 46 76 46 6C 40 64 41
-2A 40 A4 50 3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F
-44 3C 74 4E 06 4D 41 52 4B 45 52 00 B0 12 7C 4B
-BA 40 84 12 FC FF BA 40 A2 50 FE FF 9A 42 C8 1D
-00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40 C6 4B
-F0 4E 80 4F 94 4F E8 50 3A 4E 82 4A C8 1D 2E 4E
-82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83 18 48
-FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23 2A 4A
-0A 93 F0 23 3E 4F 3D 41 30 4D 60 4F 09 50 57 52
-5F 53 54 41 54 45 84 12 E0 50 46 4F D8 6B CA 4D
-09 52 53 54 5F 53 54 41 54 45 92 42 0E 18 2A 51
-92 42 0C 18 2C 51 EF 3F 1C 51 08 50 57 52 5F 48
-45 52 45 00 92 42 C8 1D 2A 51 92 42 C6 1D 2C 51
-30 4D 30 51 08 52 53 54 5F 48 45 52 45 00 92 42
-C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F AC 4E 04 57
-49 50 45 00 39 40 10 00 29 83 B9 43 80 FF FC 23
-B2 40 84 44 82 44 B2 40 0C 52 0A 52 B2 40 76 49
-74 49 B2 40 46 4F 0E 18 B2 40 D8 6B 0C 18 30 12
-3A 51 B2 40 EA 44 E8 44 B2 40 AE 45 AC 45 B2 40
-A0 43 9E 43 B2 40 26 44 24 44 B2 40 3C 1D F8 44
-B2 40 18 00 0A 18 37 40 1A 40 36 40 BC 40 35 40
-0E 40 34 40 00 40 39 40 10 00 29 83 89 43 E0 1D
-FC 23 B2 40 0A 00 DC 1D B2 40 20 00 B4 1D 30 41
-7E 51 04 57 41 52 4D 00 30 40 0C 52 3D 40 5A 53
-92 C3 30 01 1E 42 08 18 0E 93 9E 24 D2 B3 01 02
-02 20 3E E3 1E 53 F2 D0 03 00 0D 02 E2 B2 60 02
-8A 20 39 42 B0 12 CE 62 D2 C3 23 02 2C 42 B2 40
-95 00 14 20 B2 40 00 40 18 20 B0 12 44 62 02 24
-30 40 6A 63 B0 12 CC 62 7A 93 FC 23 B2 40 87 AA
-14 20 92 43 16 20 B2 40 00 48 18 20 B0 12 44 62
-29 42 B0 12 CE 62 92 43 14 20 82 43 16 20 78 43
-3C 42 B2 40 00 77 18 20 B0 12 44 62 B2 40 40 69
-18 20 B0 12 8A 62 03 24 58 83 F3 23 D9 3F 0C 5C
-A2 43 16 20 B2 40 00 50 18 20 B0 12 8A 62 D0 23
-92 D3 40 06 82 43 46 06 92 C3 40 06 B0 12 F4 62
-38 40 00 1E 92 48 C6 01 04 20 92 48 C8 01 06 20
-5A 48 C2 01 92 43 02 20 7A 80 06 00 0F 24 7A 82
-0D 24 A2 43 02 20 6A 53 09 24 5A 53 07 24 6A 52
-05 24 3A 50 0B 20 0C 4A 30 40 70 63 B0 12 F4 62
-D2 48 0D 00 12 20 19 48 0E 00 82 49 08 20 1A 48
-16 00 0A 93 02 20 1A 48 24 00 82 4A 0A 20 09 5A
-82 49 0C 20 09 5A A2 93 02 20 04 24 82 49 0E 20
-39 50 20 00 19 82 12 20 19 82 12 20 82 49 10 20
-92 42 02 20 2C 20 3E 90 0A 00 1C 27 3E 90 16 00
-19 2F 2E 93 E8 26 F1 2E 30 4D BA 45 06 0D 1B 5B
-37 6D 23 00 7C 45 E2 42 BA 45 1F 46 61 73 74 46
-6F 72 74 68 20 56 33 30 30 20 28 43 29 4A 2E 4D
-2E 54 68 6F 6F 72 65 6E 73 20 7C 45 34 40 80 FF
-F2 42 28 41 D2 42 BA 45 0B 62 79 74 65 73 20 66
-72 65 65 20 24 43 46 4A 9E 4F 04 43 4F 4C 44 00
-92 B3 CA 05 FD 23 B2 40 04 A5 20 01 B2 40 88 5A
-5C 01 B2 D0 03 00 04 02 B2 40 FC FF 02 02 B2 C0
-03 00 06 02 B2 43 26 02 B2 43 22 02 E2 D2 25 02
-B2 43 42 02 B2 D3 46 02 B2 43 62 02 B2 D3 66 02
-F2 43 26 03 F2 D3 22 03 F2 40 A5 00 61 01 82 43
-66 01 39 40 80 00 B2 40 33 00 64 01 D2 43 61 01
-92 D2 9E 01 08 18 38 40 59 14 18 83 FE 23 19 83
-FA 23 F2 D0 10 00 2A 03 F2 40 A5 00 A1 04 F2 C0
-40 00 A2 04 B2 42 B0 01 39 40 00 10 29 83 89 43
-00 1C FC 23 39 40 4C 00 29 83 B9 40 BC 53 B4 FF
-FB 23 B2 40 8A 44 F0 FF B2 40 81 00 C0 05 92 42
-02 18 C6 05 92 42 04 18 C8 05 92 C3 C0 05 92 D3
-DA 05 B2 40 81 A9 40 06 B2 40 18 00 46 06 D2 D3
-25 02 B2 D0 C0 04 0C 02 92 C3 40 06 3F 40 80 1C
-31 40 E0 1C 30 12 08 52 9B 3E 38 40 C0 1D 39 48
-2A 48 09 5A 1A 52 C4 1D 09 9A 03 24 7E 9A FC 27
-1A 83 0E 4A 2A 88 82 4A C4 1D 30 4D 64 51 09 32
-43 4F 4E 53 54 41 4E 54 87 12 2E 4C 30 48 30 48
-46 4C D4 54 2F 83 9F 4E 02 00 00 00 2E 4E 3D 41
-30 4D BE 54 09 32 56 41 52 49 41 42 4C 45 87 12
-2E 4C 34 40 04 00 06 43 46 4C 2A 40 1C 15 B0 12
-2A 40 1E 46 76 46 32 43 12 55 32 47 28 43 7A 4A
-4A 55 14 55 29 4E 39 90 86 12 02 20 2E 53 15 3C
-39 90 85 12 03 20 1E 4E 02 00 0F 3C 39 90 84 12
-0C 20 2E 52 B9 90 D2 54 02 00 04 24 B9 90 FA 54
-02 00 03 20 B0 12 D4 54 4A 55 1B 17 30 41 32 B0
-00 02 01 24 3E 4F 30 41 3E 40 28 00 B0 12 FC 54
-B0 12 4E 55 19 42 C6 1D A2 53 C6 1D 89 4E 00 00
-3E 40 29 00 1C 15 12 12 C4 1D 92 53 C4 1D B0 12
-2A 40 1E 46 32 47 28 43 96 55 8C 55 21 53 3E 90
-10 00 87 2D DA 2B 98 55 B2 41 C4 1D D6 3F 87 12
-B0 41 9A 54 A6 55 0C 43 1B 42 C6 1D A2 53 C6 1D
-6A 4E 3E 4F 7A 90 23 00 2F 20 92 53 C4 1D B0 12
-FC 54 B0 12 4E 55 0E 93 03 20 3C 40 00 03 21 3C
-1E 93 03 20 3C 40 10 03 1C 3C 2E 93 03 20 3C 40
-20 03 17 3C 2E 92 03 20 3C 40 20 02 12 3C 3E 92
-03 20 3C 40 30 02 0D 3C 3E 93 03 20 3C 40 30 03
-08 3C 3C 40 30 00 19 42 C6 1D A2 53 C6 1D 89 4E
-00 00 3E 4F 3D 41 30 4D 7A 90 26 00 09 20 3C 40
-10 02 92 53 C4 1D B0 12 FC 54 B0 12 4E 55 EB 3F
-7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12
-74 55 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 74 55
-92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E
-D8 3F B0 12 74 55 FA 23 3C 50 10 00 B0 12 58 55
-EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 87 12 B0 41
-9A 54 84 56 FE 90 26 00 00 00 3E 40 20 00 03 20
-3C 50 82 00 C6 3F B0 12 74 55 E1 23 3C 50 80 00
-B0 12 58 55 DC 3F 7A 44 04 52 45 54 49 00 87 12
-34 40 00 13 30 48 2A 40 34 40 2C 00 9E 55 7C 56
-C2 56 2E 4E 0E DC 09 4B A2 3F FA 4C 03 4D 4F 56
-84 12 B8 56 00 40 CC 56 05 4D 4F 56 2E 42 84 12
-B8 56 40 40 00 00 03 41 44 44 84 12 B8 56 00 50
-E6 56 05 41 44 44 2E 42 84 12 B8 56 40 50 F2 56
-04 41 44 44 43 00 84 12 B8 56 00 60 00 57 06 41
-44 44 43 2E 42 00 84 12 B8 56 40 60 A8 56 04 53
-55 42 43 00 84 12 B8 56 00 70 1E 57 06 53 55 42
-43 2E 42 00 84 12 B8 56 40 70 2C 57 03 53 55 42
-84 12 B8 56 00 80 3C 57 05 53 55 42 2E 42 84 12
-B8 56 40 80 DC 4C 03 43 4D 50 84 12 B8 56 00 90
-56 57 05 43 4D 50 2E 42 84 12 B8 56 40 90 CA 4C
-04 44 41 44 44 00 84 12 B8 56 00 A0 70 57 06 44
-41 44 44 2E 42 00 84 12 B8 56 40 A0 62 57 03 42
-49 54 84 12 B8 56 00 B0 8E 57 05 42 49 54 2E 42
-84 12 B8 56 40 B0 9A 57 03 42 49 43 84 12 B8 56
-00 C0 A8 57 05 42 49 43 2E 42 84 12 B8 56 40 C0
-B4 57 03 42 49 53 84 12 B8 56 00 D0 C2 57 05 42
-49 53 2E 42 84 12 B8 56 40 D0 00 00 03 58 4F 52
-84 12 B8 56 00 E0 DC 57 05 58 4F 52 2E 42 84 12
-B8 56 40 E0 0E 57 03 41 4E 44 84 12 B8 56 00 F0
-F6 57 05 41 4E 44 2E 42 84 12 B8 56 40 F0 B0 41
-9E 55 14 58 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F 48 57 03 52 52 43 84 12 0E 58 00 10
-26 58 05 52 52 43 2E 42 84 12 0E 58 40 10 32 58
-04 53 57 50 42 00 84 12 0E 58 80 10 40 58 03 52
-52 41 84 12 0E 58 00 11 4E 58 05 52 52 41 2E 42
-84 12 0E 58 40 11 5A 58 03 53 58 54 84 12 0E 58
-80 11 00 00 04 50 55 53 48 00 84 12 0E 58 00 12
-74 58 06 50 55 53 48 2E 42 00 84 12 0E 58 40 12
-CE 57 04 43 41 4C 4C 00 84 12 0E 58 80 12 1A 53
-0E 4A 87 12 E2 42 BA 45 0D 6F 75 74 20 6F 66 20
-62 6F 75 6E 64 73 E6 49 B0 41 9A 54 BE 58 92 53
-C4 1D 3E 40 2C 00 B0 12 2A 40 1E 46 32 47 28 43
-7A 4A 72 56 D6 58 0A 4E 3E 4F 1A 83 E0 33 29 4E
-59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
-10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06
-8F 3F 68 58 06 52 52 43 4D 2E 41 00 84 12 B8 58
-40 00 04 59 04 52 52 43 4D 00 84 12 B8 58 50 00
-14 59 06 52 52 41 4D 2E 41 00 84 12 B8 58 40 01
-22 59 04 52 52 41 4D 00 84 12 B8 58 50 01 32 59
-06 52 4C 41 4D 2E 41 00 84 12 B8 58 40 02 40 59
-04 52 4C 41 4D 00 84 12 B8 58 50 02 50 59 06 52
-52 55 4D 2E 41 00 84 12 B8 58 40 03 5E 59 04 52
-52 55 4D 00 84 12 B8 58 50 03 82 58 07 50 55 53
-48 4D 2E 41 84 12 B8 58 00 14 7C 59 05 50 55 53
-48 4D 84 12 B8 58 00 15 8C 59 06 50 4F 50 4D 2E
-41 00 84 12 B8 58 00 16 9A 59 04 50 4F 50 4D 00
-84 12 B8 58 00 17 85 12 00 3C 6E 59 03 53 3E 3D
-85 12 00 38 BC 59 02 53 3C 00 85 12 00 34 AA 59
-03 30 3E 3D 85 12 00 30 D0 59 02 30 3C 00 85 12
-00 30 00 00 02 55 3C 00 85 12 00 2C E4 59 03 55
-3E 3D 85 12 00 28 DA 59 03 30 3C 3E 85 12 00 24
-F8 59 02 30 3D 00 85 12 00 20 00 00 02 49 46 00
-1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 0E 4A 30 4D
-EE 59 04 54 48 45 4E 00 1A 42 C6 1D 08 4E 3E 4F
-09 48 29 53 0A 89 0A 11 3A 90 00 02 31 2F 88 DA
-00 00 30 4D 7E 57 04 45 4C 53 45 00 1A 42 C6 1D
-BA 40 00 3C 00 00 A2 53 C6 1D 2F 83 8F 4A 00 00
-E3 3F 22 5A 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
-19 42 C6 1D 2A 83 0A 89 0A 11 3A 90 00 FE 10 3B
-3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D 30 4D
-02 58 05 41 47 41 49 4E 87 12 B6 59 6A 5A 2A 40
-00 00 05 57 48 49 4C 45 87 12 10 5A 78 40 2A 40
-C6 59 06 52 45 50 45 41 54 00 87 12 B6 59 6A 5A
-28 5A 2A 40 C6 5A 3D 41 2E 4E 08 4E 3E 4F 2A 48
-0A 93 88 43 00 00 CA 23 98 42 C6 1D 00 00 30 4D
-92 58 03 42 57 31 84 12 C4 5A E0 1D E2 5A 03 42
-57 32 84 12 C4 5A E2 1D EE 5A 03 42 57 33 84 12
-C4 5A E4 1D 06 5B 3D 41 1A 42 C6 1D 2E 4E 28 4E
-08 93 8E 43 00 00 8B 23 BA 4F 00 00 A2 53 C6 1D
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12
-04 5B E6 1D 2A 5B 03 46 57 32 84 12 04 5B E8 1D
-36 5B 03 46 57 33 84 12 04 5B EA 1D 3E 90 00 30
-07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0 00 08
-30 4D 42 5B 04 47 4F 54 4F 00 87 12 B6 59 6C 4A
-26 48 2A 40 00 00 05 3F 47 4F 54 4F 87 12 4C 5B
-6C 4A 26 48 2A 40 00 00 03 4A 4D 50 87 12 6C 4A
-98 5A 2A 40 76 5B 04 3F 4A 4D 50 00 87 12 4C 5B
-6C 4A 78 40 6A 5A 2A 40 87 12 B0 41 9A 54 B0 5B
-69 4E 3E 4F 3C 4F 2C 4C 1B 42 C6 1D A2 53 C6 1D
-79 90 52 00 0A 20 B0 12 74 55 5E 0E 5E 0E 0E DC
-8B 4E 00 00 0E 4B 3D 41 30 4D 79 90 23 00 0D 20
-3C C0 40 00 92 53 C4 1D A2 53 C6 1D B0 12 FC 54
-BB 4F 02 00 3E F0 0F 00 E8 3F 79 90 26 00 03 20
-3C E0 E0 00 EF 3F 3C C0 F0 00 79 90 40 00 12 20
-92 53 C4 1D B0 12 74 55 D8 23 3C D0 10 00 3E 40
-2B 00 B0 12 74 55 92 92 C0 1D C4 1D CE 27 92 53
-C4 1D CB 3F 3C D0 30 00 A2 53 C6 1D 3E 40 28 00
-B0 12 FC 54 BB 4F 02 00 3E 40 29 00 EA 3F 87 12
-B0 41 9A 54 56 5C 3B 4F 2C 4B 69 4E 7E 40 20 00
-79 90 52 00 03 20 B0 12 74 55 B1 3F 3C C0 F0 00
-A2 53 C6 1D 79 90 26 00 09 20 3C D0 60 00 92 53
-C4 1D B0 12 FC 54 BB 4F 02 00 A1 3F 3C D0 70 00
-3E 40 28 00 B0 12 FC 54 BB 4F 02 00 3E 40 29 00
-E2 3F 34 40 2C 00 A8 5B 4E 5C 62 40 2A 40 D8 56
-04 4D 4F 56 41 00 84 12 A2 5C C0 00 FA 5A 04 43
-4D 50 41 00 84 12 A2 5C D0 00 92 5A 04 41 44 44
-41 00 84 12 A2 5C E0 00 B2 5A 04 53 55 42 41 00
-84 12 A2 5C F0 00 BE 5C 05 43 41 4C 4C 41 87 12
-B0 41 9A 54 F6 5C 1B 42 C6 1D A2 53 C6 1D 6E 4E
-3C 40 34 01 7E 90 52 00 0B 20 7E 40 20 00 B0 12
-74 55 5C 0E 0C DE 8B 4C 00 00 3E 4F 3D 41 30 4D
-2C 53 7E 90 40 00 0B 20 92 53 C4 1D 7E 40 20 00
-B0 12 74 55 EE 23 1C 53 3E 40 2B 00 E8 3F A2 53
-C6 1D 7E 90 23 00 09 20 3C 40 3B 01 92 53 C4 1D
-B0 12 FC 54 BB 4F 02 00 DC 3F 7E 90 26 00 02 20
-2C 53 F4 3F 7E 40 28 00 1C 83 B0 12 FC 54 BB 4F
-02 00 3E 40 29 00 CB 3F 87 12 B0 41 9A 54 80 5D
-69 4E 3E 4F 3C 40 00 18 79 90 52 00 05 20 B0 12
-74 55 0E 4C 3D 41 30 4D 82 43 EE 1D 79 90 23 00
-0B 20 92 53 C4 1D B0 12 FC 54 2F 53 3E F0 0F 00
-5E 0A 5E 0E 0C DE ED 3F 79 90 26 00 F2 27 79 90
-40 00 12 20 92 53 C4 1D B0 12 74 55 E2 23 3E 40
-2B 00 92 53 C4 1D B0 12 74 55 92 92 C0 1D C4 1D
-D8 27 92 53 C4 1D D5 3F 3E 40 28 00 B0 12 FC 54
-8F 4E 00 00 3E 40 29 00 B0 12 74 55 3E 4F 3E F0
-0F 00 0C DE EA 3F 87 12 B0 41 9A 54 0E 5E 3C 4F
-69 4E 3E 40 20 00 79 90 52 00 BB 27 82 43 EE 1D
-79 90 26 00 08 20 92 53 C4 1D B0 12 FC 54 2F 53
-3E F0 0F 00 BF 3F 3E 40 28 00 B0 12 FC 54 F7 3F
-1B 42 C6 1D A2 53 C6 1D 0C 4E 3E 4F 1C D2 EE 1D
-82 43 EE 1D 3C DE 8B 4C 00 00 B2 41 C4 1D 30 4D
-34 40 C4 1D F2 40 B0 40 34 40 2C 00 78 5D 06 5E
-40 5E 24 43 B8 56 B0 5C 04 4D 4F 56 58 00 84 12
-60 5E 40 00 00 40 78 5E 06 4D 4F 56 58 2E 41 00
-84 12 60 5E 00 00 40 40 88 5E 06 4D 4F 56 58 2E
-42 00 84 12 60 5E 40 00 40 40 CC 5C 04 41 44 44
-58 00 84 12 60 5E 40 00 00 50 AC 5E 06 41 44 44
-58 2E 41 00 84 12 60 5E 00 00 40 50 BC 5E 06 41
-44 44 58 2E 42 00 84 12 60 5E 40 00 40 50 CE 5E
-05 41 44 44 43 58 84 12 60 5E 40 00 00 60 E0 5E
-07 41 44 44 43 58 2E 41 84 12 60 5E 00 00 40 60
-F0 5E 07 41 44 44 43 58 2E 42 84 12 60 5E 40 00
-40 60 DA 5C 05 53 55 42 43 58 84 12 60 5E 40 00
-00 70 14 5F 07 53 55 42 43 58 2E 41 84 12 60 5E
-00 00 40 70 24 5F 07 53 55 42 43 58 2E 42 84 12
-60 5E 40 00 40 70 36 5F 04 53 55 42 58 00 84 12
-60 5E 40 00 00 80 48 5F 06 53 55 42 58 2E 41 00
-84 12 60 5E 00 00 40 80 58 5F 06 53 55 42 58 2E
-42 00 84 12 60 5E 40 00 40 80 E8 5C 04 43 4D 50
-58 00 84 12 60 5E 40 00 00 90 7C 5F 06 43 4D 50
-58 2E 41 00 84 12 60 5E 00 00 40 90 8C 5F 06 43
-4D 50 58 2E 42 00 84 12 60 5E 40 00 40 90 46 5A
-05 44 41 44 44 58 84 12 60 5E 40 00 00 A0 B0 5F
-07 44 41 44 44 58 2E 41 84 12 60 5E 00 00 40 A0
-C0 5F 07 44 41 44 44 58 2E 42 84 12 60 5E 40 00
-40 A0 9E 5F 04 42 49 54 58 00 84 12 60 5E 40 00
-00 B0 E4 5F 06 42 49 54 58 2E 41 00 84 12 60 5E
-00 00 40 B0 F4 5F 06 42 49 54 58 2E 42 00 84 12
-60 5E 40 00 40 B0 06 60 04 42 49 43 58 00 84 12
-60 5E 40 00 00 C0 18 60 06 42 49 43 58 2E 41 00
-84 12 60 5E 00 00 40 C0 28 60 06 42 49 43 58 2E
-42 00 84 12 60 5E 40 00 40 C0 3A 60 04 42 49 53
-58 00 84 12 60 5E 40 00 00 D0 4C 60 06 42 49 53
-58 2E 41 00 84 12 60 5E 00 00 40 D0 5C 60 06 42
-49 53 58 2E 42 00 84 12 60 5E 40 00 40 D0 E8 57
-04 58 4F 52 58 00 84 12 60 5E 40 00 00 E0 80 60
-06 58 4F 52 58 2E 41 00 84 12 60 5E 00 00 40 E0
-90 60 06 58 4F 52 58 2E 42 00 84 12 60 5E 40 00
-40 E0 02 5F 04 41 4E 44 58 00 84 12 60 5E 40 00
-00 F0 B4 60 06 41 4E 44 58 2E 41 00 84 12 60 5E
-00 00 40 F0 C4 60 06 41 4E 44 58 2E 42 00 84 12
-60 5E 40 00 40 F0 34 40 C4 1D F2 40 B0 40 B0 41
-78 5D 40 5E 24 43 0E 58 6A 5F 04 52 52 43 58 00
-84 12 E6 60 40 00 00 10 FA 60 06 52 52 43 58 2E
-41 00 84 12 E6 60 00 00 40 10 0A 61 06 52 52 43
-58 2E 42 00 84 12 E6 60 40 00 40 10 1C 61 04 52
-52 55 58 00 84 12 E6 60 40 01 00 10 2E 61 06 52
-52 55 58 2E 41 00 84 12 E6 60 00 01 40 10 3E 61
-06 52 52 55 58 2E 42 00 84 12 E6 60 40 01 40 10
-50 61 05 53 57 50 42 58 84 12 E6 60 40 00 80 10
-62 61 07 53 57 50 42 58 2E 41 84 12 E6 60 00 00
-80 10 72 61 04 52 52 41 58 00 84 12 E6 60 40 00
-00 11 84 61 06 52 52 41 58 2E 41 00 84 12 E6 60
-00 00 40 11 94 61 06 52 52 41 58 2E 42 00 84 12
-E6 60 40 00 40 11 A6 61 04 53 58 54 58 00 84 12
-E6 60 40 00 80 11 B8 61 06 53 58 54 58 2E 41 00
-84 12 E6 60 00 00 80 11 02 5A 05 50 55 53 48 58
-84 12 E6 60 40 00 00 12 DA 61 07 50 55 53 48 58
-2E 41 84 12 E6 60 00 00 40 12 EA 61 07 50 55 53
-48 58 2E 42 84 12 E6 60 40 00 40 12 C8 61 03 52
-50 54 87 12 B0 41 9A 54 1A 62 29 4E 7E 40 20 00
-79 90 52 00 06 20 B0 12 74 55 03 24 3E D0 80 00
-04 3C B0 12 FC 54 3E F0 0F 00 82 4E EE 1D 3E 4F
-3D 41 30 4D 1A 43 25 3C D2 C3 23 02 E2 B2 60 02
-02 24 30 40 B0 53 1A 52 04 20 19 62 06 20 92 43
-14 20 A2 93 02 20 07 24 0A 5A 49 69 82 4A 16 20
-C2 49 18 20 0A 3C C2 4A 15 20 8A 10 C2 4A 16 20
-C2 49 17 20 89 10 C2 49 18 20 B0 12 CC 62 5A 53
-FC 23 39 40 05 00 D2 49 14 20 4E 06 82 93 46 06
-05 24 92 B3 6C 06 FD 27 C2 93 4C 06 59 83 F3 2F
-19 83 0B 30 F2 43 4E 06 82 93 46 06 03 24 92 B3
-6C 06 FD 27 5A 92 4C 06 F3 23 30 41 19 43 3A 43
-8A 10 C2 4A 4E 06 82 93 46 06 05 24 92 B3 6C 06
-FD 27 C2 93 4C 06 19 83 F3 23 5A 42 4C 06 30 41
-1A 52 08 20 09 43 1C D3 F2 40 51 00 19 20 B0 12
-48 62 33 20 B0 12 CC 62 6A 53 04 24 FB 23 D9 42
-4C 06 FF 1D F2 43 4E 06 03 43 19 53 39 90 01 02
-F6 23 F2 43 4E 06 3C C0 03 00 D2 D3 23 02 30 41
-09 43 2C D3 F0 40 58 00 E1 BC B0 12 48 62 15 20
-3A 40 FE FF 29 43 B0 12 D0 62 D2 49 00 1E 4E 06
-03 43 19 53 39 90 00 02 F8 23 39 40 03 00 B0 12
-CE 62 7A C0 E1 00 6A 92 DE 27 8C 10 1C 52 4C 06
-D2 D3 23 02 87 12 1A 45 BA 45 0B 3C 20 53 44 20
-45 72 72 6F 72 21 88 63 2F 83 B2 40 10 00 DC 1D
-0E 4C B0 12 2A 40 D2 42 E6 49 92 4B 0E 00 22 20
-92 4B 10 00 24 20 5A 42 23 20 58 42 22 20 92 93
-02 20 08 24 59 42 24 20 89 10 0A 59 88 10 08 58
-0A 6A 88 10 08 58 30 41 82 43 1C 20 92 42 0E 20
-1A 20 C2 93 24 20 03 20 92 93 22 20 14 24 92 42
-22 20 D0 04 92 42 24 20 D2 04 92 42 12 20 C8 04
-92 42 E4 04 1A 20 92 42 E6 04 1C 20 92 52 10 20
-1A 20 82 63 1C 20 30 41 92 4B 0E 00 22 20 92 4B
-10 00 24 20 B0 12 C8 63 5A 4B 03 00 82 5A 1A 20
-82 63 1C 20 30 41 09 93 07 24 F8 90 20 00 00 1E
-03 20 18 53 19 83 F9 23 30 41 1B 42 32 20 82 43
-1E 20 B2 90 00 02 20 20 A8 20 BB 80 00 02 12 00
-8B 73 14 00 DB 53 03 00 DB 92 12 20 03 00 11 28
-CB 43 03 00 B0 12 9A 63 B0 12 F0 62 8B 43 10 00
-9B 48 00 1E 0E 00 92 93 02 20 03 24 9B 48 02 1E
-10 00 B2 40 00 02 20 20 8B 93 14 00 0B 20 92 9B
-12 00 1E 20 82 2C BB 90 00 02 12 00 03 2C 92 4B
-12 00 20 20 B0 12 08 64 1A 42 1A 20 19 42 1C 20
-22 3F 3C 42 3B 40 38 20 09 43 CB 93 02 00 10 24
-9B 92 24 20 0C 00 04 20 9B 92 22 20 0A 00 07 24
-09 4B 3B 50 1C 00 3B 90 18 21 EF 23 0C 5C 30 41
-0C 43 82 4B 32 20 8B 49 00 00 09 93 0A 24 99 52
-C4 1D 16 00 4A 93 05 34 C9 93 02 00 02 34 5A 59
-02 00 CB 4A 02 00 CB 43 03 00 9B 42 1A 20 04 00
-9B 42 1C 20 06 00 18 42 30 20 8B 48 08 00 9B 48
-1A 1E 0A 00 9B 48 14 1E 0C 00 9B 48 1A 1E 0E 00
-9B 48 14 1E 10 00 9B 48 1C 1E 12 00 9B 48 1E 1E
-14 00 82 43 1E 20 6A 93 5F 27 C9 37 8B 43 16 00
-7A 93 02 24 07 38 95 3F B2 40 1C 21 F8 44 B2 40
-BE 43 24 44 9B 42 C0 1D 18 00 9B 82 C4 1D 18 00
-9B 42 C2 1D 1A 00 9B 52 C4 1D 1A 00 82 3F CB 43
-02 00 2B 4B 82 4B 32 20 0B 93 06 24 92 4B 16 00
-1E 20 B0 12 82 64 22 C3 30 41 1B 42 32 20 0B 93
-FB 27 EB 93 02 00 04 20 B0 12 FA 69 B0 12 C2 69
-CB 93 02 00 E4 37 1E 4B 18 00 9F 4B 1A 00 00 00
-31 50 06 00 3D 41 B0 12 7E 65 02 24 30 40 30 45
-B2 40 3C 1D F8 44 B2 40 26 44 24 44 30 40 1A 45
-E4 54 85 52 45 41 44 22 5A 43 19 3C 02 52 86 57
-52 49 54 45 22 00 6A 43 12 3C 88 4F 84 44 45 4C
-22 00 6A 42 0C 3C AA 53 05 43 4C 4F 53 45 B0 12
-9A 65 30 4D B4 50 85 4C 4F 41 44 22 7A 43 2F 83
-8F 4E 00 00 0E 4A 82 93 BE 1D 0A 24 87 12 34 40
-34 40 30 48 30 48 D4 45 34 40 4E 66 30 48 2A 40
-87 12 34 40 22 00 1E 46 84 48 4C 66 3D 41 35 4F
-0E 55 82 4E 36 20 1C 43 92 42 2C 20 22 20 92 42
-2E 20 24 20 0E 95 8D 24 F5 90 3A 00 01 00 01 20
-25 53 F5 90 5C 00 00 00 08 20 15 53 92 42 02 20
-22 20 82 43 24 20 0E 95 70 24 82 45 34 20 B0 12
-C8 63 34 40 20 00 A2 93 02 20 04 24 92 92 22 20
-02 20 02 24 14 42 12 20 B0 12 A8 64 2C 43 0A 43
-08 4A 58 0E 08 58 82 48 30 20 C8 93 00 1E 61 24
-39 42 F8 95 00 1E 04 20 18 53 19 83 FA 23 15 53
-F5 90 2E 00 FF FF 19 24 39 50 03 00 B0 12 26 64
-06 20 F5 90 5C 00 FF FF 29 24 0E 95 27 28 15 42
-34 20 1A 53 3A 90 10 00 DB 23 92 53 1A 20 82 63
-1C 20 14 83 D1 23 2C 42 3C 3C F5 90 2E 00 FE FF
-EE 27 B0 12 26 64 EB 23 39 40 03 00 F8 95 00 1E
-04 20 18 53 19 83 FA 23 09 3C 0E 95 E0 2F F5 90
-5C 00 FF FF DC 23 B0 12 26 64 D9 23 18 42 30 20
-92 48 1A 1E 22 20 92 48 14 1E 24 20 F8 B0 10 00
-0B 1E 14 24 82 93 24 20 06 20 82 93 22 20 03 20
-92 42 02 20 22 20 0E 95 8E 2F 92 42 22 20 2C 20
-92 42 24 20 2E 20 8F 43 00 00 03 3C 2A 4F B0 12
-B2 64 34 40 00 40 35 40 0E 40 3A 4F 3E 4F 0A 93
-04 24 7A 93 12 20 0C 93 01 20 30 4D 87 12 BA 45
-0B 3C 20 4F 70 65 6E 45 72 72 6F 72 1A 45 F2 42
-84 48 7C 45 44 45 24 43 86 63 1A 93 B6 20 0C 93
-ED 23 30 4D E2 65 04 52 45 41 44 00 2F 83 8F 4E
-00 00 1E 42 32 20 B0 12 3A 64 1E 82 32 20 30 4D
-2C 43 12 12 2A 20 18 42 02 20 08 58 2A 41 82 9A
-0A 20 A1 24 B0 12 F0 62 09 43 28 93 03 24 89 93
-02 1E 03 20 89 93 00 1E 07 24 09 58 39 90 00 02
-F4 23 91 53 00 00 EA 3F 0C 43 6A 41 B9 43 00 1E
-28 93 0F 24 B9 40 FF 0F 02 1E 09 11 8A 10 09 5A
-5A 41 01 00 0A 11 09 10 82 4A 28 20 82 49 26 20
-07 3C 09 11 C2 49 26 20 C2 4A 27 20 82 43 28 20
-3A 41 82 4A 2A 20 30 41 0A 12 1A 52 08 20 B0 12
-30 63 3A 41 1A 52 0C 20 30 40 30 63 F2 B0 40 00
-A2 04 29 20 F2 B0 10 00 A2 04 FC 27 5A 42 B0 04
-4A 11 59 42 B4 04 F2 40 20 00 C0 04 D2 42 B1 04
-C8 04 1A 52 E4 04 D2 42 B5 04 C8 04 19 52 E4 04
-D2 42 B2 04 C0 04 B2 40 00 08 C8 04 1A 52 E4 04
-92 42 B6 04 C0 04 B2 80 BC 07 C0 04 B2 40 00 02
-C8 04 19 52 E4 04 30 41 22 2A 2B 2C 2F 3A 3B 3C
-3D 3E 3F 5B 5C 5D 7C 2E 29 92 06 38 39 80 03 00
-B0 12 18 69 39 40 03 00 7A 4B C8 4A 00 1E 82 9B
-36 20 12 28 0D 12 3D 40 0F 00 3C 40 C8 68 7A 9C
-F3 27 1D 83 FC 23 3D 41 6A 9C E6 27 3A 80 21 00
-EB 3B 18 53 19 83 E8 23 09 93 06 24 F8 40 20 00
-00 1E 18 53 19 83 FA 23 30 41 2A 93 EB 20 2C 93
-0D 24 0C 93 BA 24 87 12 BA 45 0C 3C 20 57 72 69
-74 65 45 72 72 6F 72 00 24 43 AC 67 B0 12 E0 67
-92 42 26 20 22 20 92 42 28 20 24 20 B0 12 58 68
-B0 12 A8 64 18 42 30 20 F8 40 20 00 0B 1E B0 12
-6C 68 88 43 0C 1E 88 4A 0E 1E 88 49 10 1E 88 49
-12 1E 98 42 24 20 14 1E 98 42 22 20 1A 1E 88 43
-1C 1E 88 43 1E 1E 1C 43 1B 42 34 20 82 9B 36 20
-CA 27 FB 90 2E 00 00 00 C6 27 39 40 0B 00 B0 12
-E8 68 B0 12 04 6A 2A 43 B0 12 B2 64 0C 93 BB 23
-30 4D 1A 4B 04 00 19 4B 06 00 B0 12 F6 62 B0 12
-6C 68 18 4B 08 00 88 49 12 1E 88 4A 16 1E 88 49
-18 1E 98 4B 12 00 1C 1E 98 4B 14 00 1E 1E 1A 4B
-04 00 19 4B 06 00 30 40 32 63 9B 52 1E 20 12 00
-8B 63 14 00 1A 42 1A 20 19 42 1C 20 30 40 32 63
-B2 40 00 02 1E 20 1B 42 32 20 B0 12 FA 69 82 43
-1E 20 DB 53 03 00 DB 92 12 20 03 00 22 20 CB 43
-03 00 B0 12 9A 63 08 12 0A 12 B0 12 E0 67 2A 91
-05 24 B0 12 58 68 2A 41 B0 12 F0 62 3A 41 38 41
-98 42 26 20 00 1E 92 93 02 20 03 24 98 42 28 20
-02 1E B0 12 58 68 9B 42 26 20 0E 00 9B 42 28 20
-10 00 30 40 08 64 EE 65 05 57 52 49 54 45 B0 12
-10 6A 30 4D C6 67 07 53 44 5F 45 4D 49 54 B2 90
-00 02 1E 20 02 28 B0 12 10 6A 18 42 1E 20 C8 4E
-00 1E 92 53 1E 20 3E 4F 30 4D 58 4B 13 00 59 4B
-14 00 89 10 09 58 58 4B 15 00 5B 42 12 20 0A 43
-3C 42 08 11 09 10 4A 10 1C 83 0B 11 FA 2B 0A 11
-1C 83 FD 37 1B 42 32 20 19 5B 0A 00 18 6B 0C 00
-8B 49 0E 00 8B 48 10 00 CB 4A 03 00 1A 4B 12 00
-BB C0 FF 01 12 00 3A F0 FF 01 82 4A 1E 20 B0 12
-A4 64 30 4D 0C 93 38 20 38 90 E0 01 03 2C C8 93
-20 1E 02 24 7C 40 E5 00 C8 4C 00 1E B0 12 04 6A
-B0 12 A6 63 82 4A 2A 20 0B 4A B0 12 F0 62 1A 48
-00 1E 88 43 00 1E 92 93 02 20 09 24 19 48 02 1E
-88 43 02 1E 39 F0 FF 0F 39 90 FF 0F 02 20 3A 93
-0E 24 82 4A 22 20 82 49 24 20 B0 12 A6 63 0B 9A
-E6 27 0A 12 0A 4B B0 12 58 68 3A 41 DD 3F 0A 4B
-B0 12 58 68 B0 12 9A 65 30 4D 8C 4D 08 54 45 52
-4D 32 53 44 22 00 87 12 02 66 34 40 02 00 F2 42
-84 48 4E 66 96 6B 3D 41 92 C3 DC 05 08 43 B0 12
-5A 44 92 B3 DC 05 FD 27 59 42 CC 05 69 92 0D 24
-C8 49 00 1E 18 53 38 90 FF 01 F3 2B 03 24 B0 12
-10 6A EC 3F B0 12 6C 44 EC 3F B0 12 6C 44 82 48
-1E 20 B0 12 9A 65 30 4D
+FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D 58 4A
+86 5B 54 48 45 4E 5D 00 30 4D 00 52 86 5B 45 4C
+53 45 5D 00 87 12 76 44 00 00 C6 40 A4 47 E2 44
+86 47 34 40 40 42 76 52 44 40 80 44 06 5B 54 48
+45 4E 5D 00 D6 51 4A 42 46 52 5A 44 D0 40 58 40
+4A 42 1C 52 2A 40 44 40 80 44 06 5B 45 4C 53 45
+5D 00 D6 51 4A 42 64 52 5A 44 D0 40 58 40 4A 42
+1A 52 2A 40 80 44 04 5B 49 46 5D 00 D6 51 4A 42
+1C 52 3C 42 1A 52 5A 44 80 44 05 0D 0A 6B 6F 20
+38 44 EE 43 94 47 3C 42 1C 52 0C 52 84 5B 49 46
+5D 00 0E 93 3E 4F BE 27 30 4D 8C 52 89 5B 44 45
+46 49 4E 45 44 5D 87 12 A4 47 E2 44 50 45 6A 40
+2A 40 9C 52 8B 5B 55 4E 44 45 46 49 4E 45 44 5D
+87 12 A4 47 E2 44 50 45 6A 40 00 41 2A 40 D0 52
+3D 41 B2 4E 0E 18 A2 4E 0C 18 3E 4F 30 40 74 4E
+F2 4C 06 4D 41 52 4B 45 52 00 B0 12 5E 4A BA 40
+84 12 FC FF BA 40 CE 52 FE FF 9A 42 C8 1D 00 00
+28 83 8A 48 02 00 A2 52 C6 1D 30 40 A6 4A 1C 15
+B0 12 2A 40 E2 44 50 45 4A 42 24 53 0C 46 40 42
+74 49 3E 53 26 53 39 4E 39 80 86 12 08 24 19 53
+02 20 2E 4E 04 3C 2E 53 19 53 01 24 2E 82 1B 17
+30 41 32 B0 00 02 01 24 3E 4F 30 41 3E 40 28 00
+B0 12 0E 53 B0 12 42 53 19 42 C6 1D A2 53 C6 1D
+89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 1D 92 53
+C4 1D B0 12 2A 40 E2 44 0C 46 40 42 8A 53 80 53
+21 53 3E 90 10 00 81 2D DA 2B 8C 53 B2 41 C4 1D
+D6 3F 87 12 A4 47 D6 44 9A 53 0C 43 1B 42 C6 1D
+A2 53 C6 1D 6A 4E 3E 4F 7A 90 23 00 29 20 92 53
+C4 1D B0 12 0E 53 B0 12 42 53 3C 40 00 03 0E 93
+1C 24 3C 40 10 03 1E 93 18 24 3C 40 20 03 2E 93
+14 24 3C 40 20 02 2E 92 10 24 3C 40 30 02 3E 92
+0C 24 3C 40 30 03 3E 93 08 24 3C 40 30 00 19 42
+C6 1D A2 53 C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D
+7A 90 26 00 09 20 3C 40 10 02 92 53 C4 1D B0 12
+0E 53 B0 12 42 53 EB 3F 7A 90 40 00 16 20 3C 40
+20 00 92 53 C4 1D B0 12 68 53 0C 20 3C 50 10 00
+3E 40 2B 00 B0 12 68 53 92 92 C0 1D C4 1D 02 24
+92 53 C4 1D 8E 10 0C 5E D8 3F B0 12 68 53 FA 23
+3C 50 10 00 B0 12 4C 53 EF 3F 0C 43 1B 42 C6 1D
+A2 53 C6 1D 87 12 A4 47 D6 44 6C 54 FE 90 26 00
+00 00 3E 40 20 00 03 20 3C 50 82 00 C6 3F B0 12
+68 53 E1 23 3C 50 80 00 B0 12 4C 53 DC 3F D6 42
+04 52 45 54 49 00 87 12 76 44 00 13 12 47 2A 40
+76 44 2C 00 92 53 64 54 AA 54 09 4B 2E 4E 0E DC
+A2 3F A6 4B 03 4D 4F 56 84 12 A0 54 00 40 B4 54
+05 4D 4F 56 2E 42 84 12 A0 54 40 40 00 00 03 41
+44 44 84 12 A0 54 00 50 CE 54 05 41 44 44 2E 42
+84 12 A0 54 40 50 DA 54 04 41 44 44 43 00 84 12
+A0 54 00 60 E8 54 06 41 44 44 43 2E 42 00 84 12
+A0 54 40 60 90 54 04 53 55 42 43 00 84 12 A0 54
+00 70 06 55 06 53 55 42 43 2E 42 00 84 12 A0 54
+40 70 14 55 03 53 55 42 84 12 A0 54 00 80 24 55
+05 53 55 42 2E 42 84 12 A0 54 40 80 88 4B 03 43
+4D 50 84 12 A0 54 00 90 3E 55 05 43 4D 50 2E 42
+84 12 A0 54 40 90 76 4B 04 44 41 44 44 00 84 12
+A0 54 00 A0 58 55 06 44 41 44 44 2E 42 00 84 12
+A0 54 40 A0 4A 55 03 42 49 54 84 12 A0 54 00 B0
+76 55 05 42 49 54 2E 42 84 12 A0 54 40 B0 82 55
+03 42 49 43 84 12 A0 54 00 C0 90 55 05 42 49 43
+2E 42 84 12 A0 54 40 C0 9C 55 03 42 49 53 84 12
+A0 54 00 D0 AA 55 05 42 49 53 2E 42 84 12 A0 54
+40 D0 00 00 03 58 4F 52 84 12 A0 54 00 E0 C4 55
+05 58 4F 52 2E 42 84 12 A0 54 40 E0 F6 54 03 41
+4E 44 84 12 A0 54 00 F0 DE 55 05 41 4E 44 2E 42
+84 12 A0 54 40 F0 A4 47 92 53 FC 55 0A 4C 3C F0
+70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 30 55 03 52
+52 43 84 12 F6 55 00 10 0E 56 05 52 52 43 2E 42
+84 12 F6 55 40 10 1A 56 04 53 57 50 42 00 84 12
+F6 55 80 10 28 56 03 52 52 41 84 12 F6 55 00 11
+36 56 05 52 52 41 2E 42 84 12 F6 55 40 11 42 56
+03 53 58 54 84 12 F6 55 80 11 00 00 04 50 55 53
+48 00 84 12 F6 55 00 12 5C 56 06 50 55 53 48 2E
+42 00 84 12 F6 55 40 12 B6 55 04 43 41 4C 4C 00
+84 12 F6 55 80 12 1A 53 0E 4A 87 12 34 42 80 44
+0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 F2 48
+A4 47 D6 44 A6 56 92 53 C4 1D 3E 40 2C 00 B0 12
+2A 40 E2 44 0C 46 40 42 74 49 5A 54 BE 56 0A 4E
+3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A
+01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F
+2A 92 D1 2F 8A 10 5A 06 8F 3F 50 56 06 52 52 43
+4D 2E 41 00 84 12 A0 56 40 00 EC 56 04 52 52 43
+4D 00 84 12 A0 56 50 00 FC 56 06 52 52 41 4D 2E
+41 00 84 12 A0 56 40 01 0A 57 04 52 52 41 4D 00
+84 12 A0 56 50 01 1A 57 06 52 4C 41 4D 2E 41 00
+84 12 A0 56 40 02 28 57 04 52 4C 41 4D 00 84 12
+A0 56 50 02 38 57 06 52 52 55 4D 2E 41 00 84 12
+A0 56 40 03 46 57 04 52 52 55 4D 00 84 12 A0 56
+50 03 6A 56 07 50 55 53 48 4D 2E 41 84 12 A0 56
+00 14 64 57 05 50 55 53 48 4D 84 12 A0 56 00 15
+74 57 06 50 4F 50 4D 2E 41 00 84 12 A0 56 00 16
+82 57 04 50 4F 50 4D 00 84 12 A0 56 00 17 56 57
+03 53 3E 3D 85 12 00 38 A0 57 02 53 3C 00 85 12
+00 34 92 57 03 30 3E 3D 85 12 00 30 B4 57 02 30
+3C 00 85 12 00 30 00 00 02 55 3C 00 85 12 00 2C
+C8 57 03 55 3E 3D 85 12 00 28 BE 57 03 30 3C 3E
+85 12 00 24 DC 57 02 30 3D 00 85 12 00 20 00 00
+02 49 46 00 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D
+0E 4A 30 4D D2 57 04 54 48 45 4E 00 1A 42 C6 1D
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+33 2F 88 DA 00 00 30 4D 66 55 04 45 4C 53 45 00
+1A 42 C6 1D BA 40 00 3C 00 00 A2 53 C6 1D 2F 83
+8F 4A 00 00 E3 3F 06 58 05 55 4E 54 49 4C 3A 4F
+08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11 3A 90
+00 FE 12 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
+C6 1D 30 4D EA 55 05 41 47 41 49 4E 0A 4E 38 40
+00 3C E7 3F 00 00 05 57 48 49 4C 45 87 12 F4 57
+76 40 2A 40 AA 57 06 52 45 50 45 41 54 00 87 12
+7C 58 0C 58 2A 40 A8 58 3D 41 08 4E 3E 4F 2A 48
+B2 92 C4 1D CD 2F 98 42 C6 1D 00 00 30 4D 7A 56
+03 42 57 31 84 12 A6 58 00 00 C0 58 03 42 57 32
+84 12 A6 58 00 00 CC 58 03 42 57 33 84 12 A6 58
+00 00 E4 58 3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D
+90 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F
+30 4D 00 00 03 46 57 31 84 12 E2 58 00 00 04 59
+03 46 57 32 84 12 E2 58 00 00 10 59 03 46 57 33
+84 12 E2 58 00 00 00 00 05 3F 47 4F 54 4F 3E 90
+00 30 07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0
+00 08 87 12 66 49 3C 47 2A 40 1C 59 04 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C F2 3F 87 12
+A4 47 D6 44 66 59 69 4E 3E 4F 3C 4F 2C 4C 1B 42
+C6 1D A2 53 C6 1D 79 90 52 00 0A 20 B0 12 68 53
+5E 0E 5E 0E 0E DC 8B 4E 00 00 0E 4B 3D 41 30 4D
+79 90 23 00 0D 20 3C C0 40 00 92 53 C4 1D A2 53
+C6 1D B0 12 0E 53 BB 4F 02 00 3E F0 0F 00 E8 3F
+79 90 26 00 03 20 3C E0 E0 00 EF 3F 3C C0 F0 00
+79 90 40 00 12 20 92 53 C4 1D B0 12 68 53 D8 23
+3C D0 10 00 3E 40 2B 00 B0 12 68 53 92 92 C0 1D
+C4 1D CE 27 92 53 C4 1D CB 3F 3C D0 30 00 A2 53
+C6 1D 3E 40 28 00 B0 12 0E 53 BB 4F 02 00 3E 40
+29 00 EA 3F 87 12 A4 47 D6 44 0C 5A 3B 4F 2C 4B
+69 4E 7E 40 20 00 79 90 52 00 03 20 B0 12 68 53
+B1 3F 3C C0 F0 00 A2 53 C6 1D 79 90 26 00 09 20
+3C D0 60 00 92 53 C4 1D B0 12 0E 53 BB 4F 02 00
+A1 3F 3C D0 70 00 3E 40 28 00 B0 12 0E 53 BB 4F
+02 00 3E 40 29 00 E2 3F 76 44 2C 00 5E 59 04 5A
+66 40 2A 40 C0 54 04 4D 4F 56 41 00 84 12 58 5A
+C0 00 D8 58 04 43 4D 50 41 00 84 12 58 5A D0 00
+76 58 04 41 44 44 41 00 84 12 58 5A E0 00 96 58
+04 53 55 42 41 00 84 12 58 5A F0 00 74 5A 05 43
+41 4C 4C 41 87 12 A4 47 D6 44 AC 5A 1B 42 C6 1D
+A2 53 C6 1D 6E 4E 3C 40 34 01 7E 90 52 00 0B 20
+7E 40 20 00 B0 12 68 53 5C 0E 0C DE 8B 4C 00 00
+3E 4F 3D 41 30 4D 2C 53 7E 90 40 00 0B 20 92 53
+C4 1D 7E 40 20 00 B0 12 68 53 EE 23 1C 53 3E 40
+2B 00 E8 3F A2 53 C6 1D 7E 90 23 00 09 20 3C 40
+3B 01 92 53 C4 1D B0 12 0E 53 BB 4F 02 00 DC 3F
+7E 90 26 00 02 20 2C 53 F4 3F 7E 40 28 00 1C 83
+B0 12 0E 53 BB 4F 02 00 3E 40 29 00 CB 3F 87 12
+A4 47 D6 44 36 5B 69 4E 3E 4F 3C 40 00 18 79 90
+52 00 05 20 B0 12 68 53 0E 4C 3D 41 30 4D 82 43
+C2 5F 79 90 23 00 0B 20 92 53 C4 1D B0 12 0E 53
+2F 53 3E F0 0F 00 5E 0A 5E 0E 0C DE ED 3F 79 90
+26 00 F2 27 79 90 40 00 12 20 92 53 C4 1D B0 12
+68 53 E2 23 3E 40 2B 00 92 53 C4 1D B0 12 68 53
+92 92 C0 1D C4 1D D8 27 92 53 C4 1D D5 3F 3E 40
+28 00 B0 12 0E 53 8F 4E 00 00 3E 40 29 00 B0 12
+68 53 3E 4F 3E F0 0F 00 0C DE EA 3F 87 12 A4 47
+D6 44 C4 5B 3C 4F 69 4E 3E 40 20 00 79 90 52 00
+BB 27 82 43 C2 5F 79 90 26 00 08 20 92 53 C4 1D
+B0 12 0E 53 2F 53 3E F0 0F 00 BF 3F 3E 40 28 00
+B0 12 0E 53 F7 3F 1B 42 C6 1D A2 53 C6 1D 0C 4E
+3E 4F 1C D2 C2 5F 82 43 C2 5F 3C DE 8B 4C 00 00
+B2 41 C4 1D 30 4D 76 44 C4 1D EA 40 86 40 76 44
+2C 00 2E 5B BC 5B F6 5B 3C 42 A0 54 66 5A 04 4D
+4F 56 58 00 84 12 16 5C 40 00 00 40 2E 5C 06 4D
+4F 56 58 2E 41 00 84 12 16 5C 00 00 40 40 3E 5C
+06 4D 4F 56 58 2E 42 00 84 12 16 5C 40 00 40 40
+82 5A 04 41 44 44 58 00 84 12 16 5C 40 00 00 50
+62 5C 06 41 44 44 58 2E 41 00 84 12 16 5C 00 00
+40 50 72 5C 06 41 44 44 58 2E 42 00 84 12 16 5C
+40 00 40 50 84 5C 05 41 44 44 43 58 84 12 16 5C
+40 00 00 60 96 5C 07 41 44 44 43 58 2E 41 84 12
+16 5C 00 00 40 60 A6 5C 07 41 44 44 43 58 2E 42
+84 12 16 5C 40 00 40 60 90 5A 05 53 55 42 43 58
+84 12 16 5C 40 00 00 70 CA 5C 07 53 55 42 43 58
+2E 41 84 12 16 5C 00 00 40 70 DA 5C 07 53 55 42
+43 58 2E 42 84 12 16 5C 40 00 40 70 EC 5C 04 53
+55 42 58 00 84 12 16 5C 40 00 00 80 FE 5C 06 53
+55 42 58 2E 41 00 84 12 16 5C 00 00 40 80 0E 5D
+06 53 55 42 58 2E 42 00 84 12 16 5C 40 00 40 80
+9E 5A 04 43 4D 50 58 00 84 12 16 5C 40 00 00 90
+32 5D 06 43 4D 50 58 2E 41 00 84 12 16 5C 00 00
+40 90 42 5D 06 43 4D 50 58 2E 42 00 84 12 16 5C
+40 00 40 90 2A 58 05 44 41 44 44 58 84 12 16 5C
+40 00 00 A0 66 5D 07 44 41 44 44 58 2E 41 84 12
+16 5C 00 00 40 A0 76 5D 07 44 41 44 44 58 2E 42
+84 12 16 5C 40 00 40 A0 54 5D 04 42 49 54 58 00
+84 12 16 5C 40 00 00 B0 9A 5D 06 42 49 54 58 2E
+41 00 84 12 16 5C 00 00 40 B0 AA 5D 06 42 49 54
+58 2E 42 00 84 12 16 5C 40 00 40 B0 BC 5D 04 42
+49 43 58 00 84 12 16 5C 40 00 00 C0 CE 5D 06 42
+49 43 58 2E 41 00 84 12 16 5C 00 00 40 C0 DE 5D
+06 42 49 43 58 2E 42 00 84 12 16 5C 40 00 40 C0
+F0 5D 04 42 49 53 58 00 84 12 16 5C 40 00 00 D0
+02 5E 06 42 49 53 58 2E 41 00 84 12 16 5C 00 00
+40 D0 12 5E 06 42 49 53 58 2E 42 00 84 12 16 5C
+40 00 40 D0 D0 55 04 58 4F 52 58 00 84 12 16 5C
+40 00 00 E0 36 5E 06 58 4F 52 58 2E 41 00 84 12
+16 5C 00 00 40 E0 46 5E 06 58 4F 52 58 2E 42 00
+84 12 16 5C 40 00 40 E0 B8 5C 04 41 4E 44 58 00
+84 12 16 5C 40 00 00 F0 6A 5E 06 41 4E 44 58 2E
+41 00 84 12 16 5C 00 00 40 F0 7A 5E 06 41 4E 44
+58 2E 42 00 84 12 16 5C 40 00 40 F0 76 44 C4 1D
+EA 40 86 40 A4 47 2E 5B F6 5B 3C 42 F6 55 20 5D
+04 52 52 43 58 00 84 12 9C 5E 40 00 00 10 B0 5E
+06 52 52 43 58 2E 41 00 84 12 9C 5E 00 00 40 10
+C0 5E 06 52 52 43 58 2E 42 00 84 12 9C 5E 40 00
+40 10 D2 5E 04 52 52 55 58 00 84 12 9C 5E 40 01
+00 10 E4 5E 06 52 52 55 58 2E 41 00 84 12 9C 5E
+00 01 40 10 F4 5E 06 52 52 55 58 2E 42 00 84 12
+9C 5E 40 01 40 10 06 5F 05 53 57 50 42 58 84 12
+9C 5E 40 00 80 10 18 5F 07 53 57 50 42 58 2E 41
+84 12 9C 5E 00 00 80 10 28 5F 04 52 52 41 58 00
+84 12 9C 5E 40 00 00 11 3A 5F 06 52 52 41 58 2E
+41 00 84 12 9C 5E 00 00 40 11 4A 5F 06 52 52 41
+58 2E 42 00 84 12 9C 5E 40 00 40 11 5C 5F 04 53
+58 54 58 00 84 12 9C 5E 40 00 80 11 6E 5F 06 53
+58 54 58 2E 41 00 84 12 9C 5E 00 00 80 11 E6 57
+05 50 55 53 48 58 84 12 9C 5E 40 00 00 12 90 5F
+07 50 55 53 48 58 2E 41 84 12 9C 5E 00 00 40 12
+A0 5F 07 50 55 53 48 58 2E 42 84 12 9C 5E 40 00
+40 12 00 00 7E 5F 03 52 50 54 87 12 A4 47 D6 44
+D2 5F 29 4E 7E 40 20 00 79 90 52 00 06 20 B0 12
+68 53 03 24 3E D0 80 00 05 3C B0 12 0E 53 1E 83
+3E F0 0F 00 82 4E C2 5F 3E 4F 3D 41 30 4D 1A 43
+25 3C D2 C3 23 02 E2 B2 60 02 02 24 30 40 E8 50
+1A 52 04 20 19 62 06 20 92 43 14 20 A2 93 02 20
+07 24 0A 5A 49 69 82 4A 16 20 C2 49 18 20 0A 3C
+C2 4A 15 20 8A 10 C2 4A 16 20 C2 49 17 20 89 10
+C2 49 18 20 B0 12 86 60 5A 53 FC 23 39 40 05 00
+D2 49 14 20 4E 06 82 93 46 06 05 24 92 B3 6C 06
+FD 27 C2 93 4C 06 59 83 F3 2F 19 83 0B 30 F2 43
+4E 06 82 93 46 06 03 24 92 B3 6C 06 FD 27 5A 92
+4C 06 F3 23 30 41 19 43 3A 43 8A 10 C2 4A 4E 06
+82 93 46 06 05 24 92 B3 6C 06 FD 27 C2 93 4C 06
+19 83 F3 23 5A 42 4C 06 30 41 1A 52 08 20 09 43
+1C D3 F2 40 51 00 19 20 B0 12 02 60 33 20 B0 12
+86 60 6A 53 04 24 FB 23 D9 42 4C 06 FF 1D F2 43
+4E 06 03 43 19 53 39 90 01 02 F6 23 F2 43 4E 06
+3C C0 03 00 D2 D3 23 02 30 41 09 43 2C D3 F0 40
+58 00 27 BF B0 12 02 60 15 20 3A 40 FE FF 29 43
+B0 12 8A 60 D2 49 00 1E 4E 06 03 43 19 53 39 90
+00 02 F8 23 39 40 03 00 B0 12 88 60 7A C0 E1 00
+6A 92 DE 27 8C 10 1C 52 4C 06 D2 D3 23 02 87 12
+80 44 0B 3C 20 53 44 20 45 72 72 6F 72 21 40 61
+2F 83 8F 4E 00 00 B2 40 10 00 DC 1D 0E 4C B0 12
+2A 40 24 42 F2 48 92 4B 0E 00 22 20 92 4B 10 00
+24 20 5A 42 23 20 58 42 22 20 92 93 02 20 08 24
+59 42 24 20 89 10 0A 59 88 10 08 58 0A 6A 88 10
+08 58 30 41 82 43 1C 20 92 42 0E 20 1A 20 C2 93
+24 20 03 20 92 93 22 20 14 24 92 42 22 20 D0 04
+92 42 24 20 D2 04 92 42 12 20 C8 04 92 42 E4 04
+1A 20 92 42 E6 04 1C 20 92 52 10 20 1A 20 82 63
+1C 20 30 41 92 4B 0E 00 22 20 92 4B 10 00 24 20
+B0 12 84 61 5A 4B 03 00 82 5A 1A 20 82 63 1C 20
+30 41 09 93 07 24 F8 90 20 00 00 1E 03 20 18 53
+19 83 F9 23 30 41 1B 42 32 20 82 43 1E 20 B2 90
+00 02 20 20 A8 20 BB 80 00 02 12 00 8B 73 14 00
+DB 53 03 00 DB 92 12 20 03 00 11 28 CB 43 03 00
+B0 12 56 61 B0 12 AA 60 8B 43 10 00 9B 48 00 1E
+0E 00 92 93 02 20 03 24 9B 48 02 1E 10 00 B2 40
+00 02 20 20 8B 93 14 00 0B 20 92 9B 12 00 1E 20
+82 2C BB 90 00 02 12 00 03 2C 92 4B 12 00 20 20
+B0 12 C4 61 1A 42 1A 20 19 42 1C 20 21 3F 3C 42
+3B 40 38 20 09 43 CB 93 02 00 10 24 9B 92 24 20
+0C 00 04 20 9B 92 22 20 0A 00 07 24 09 4B 3B 50
+1C 00 3B 90 18 21 EF 23 0C 5C 30 41 0C 43 82 4B
+32 20 8B 49 00 00 09 93 0A 24 99 52 C4 1D 16 00
+4A 93 05 34 C9 93 02 00 02 34 5A 59 02 00 CB 4A
+02 00 CB 43 03 00 9B 42 1A 20 04 00 9B 42 1C 20
+06 00 18 42 30 20 8B 48 08 00 9B 48 1A 1E 0A 00
+9B 48 14 1E 0C 00 9B 48 1A 1E 0E 00 9B 48 14 1E
+10 00 9B 48 1C 1E 12 00 9B 48 1E 1E 14 00 82 43
+1E 20 6A 93 5F 27 C9 37 8B 43 16 00 7A 93 02 24
+07 38 95 3F B2 40 1C 21 EC 43 B2 40 EA 42 50 43
+9B 42 C0 1D 18 00 9B 82 C4 1D 18 00 9B 42 C2 1D
+1A 00 9B 52 C4 1D 1A 00 82 3F CB 43 02 00 2B 4B
+82 4B 32 20 0B 93 06 24 92 4B 16 00 1E 20 B0 12
+3E 62 22 C3 30 41 1B 42 32 20 0B 93 FB 27 EB 93
+02 00 04 20 B0 12 AC 67 B0 12 74 67 CB 93 02 00
+E4 37 1E 4B 18 00 9F 4B 1A 00 00 00 31 50 06 00
+3D 41 B0 12 3A 63 02 24 30 40 24 44 B2 40 3C 1D
+EC 43 B2 40 52 43 50 43 30 40 0E 44 9E 4E 85 52
+45 41 44 22 5A 43 19 3C 40 4F 86 57 52 49 54 45
+22 00 6A 43 12 3C 06 4E 84 44 45 4C 22 00 6A 42
+0C 3C CE 51 05 43 4C 4F 53 45 B0 12 56 63 30 4D
+E2 52 85 4C 4F 41 44 22 7A 43 2F 83 8F 4E 00 00
+0E 4A 82 93 BE 1D 0A 24 87 12 76 44 76 44 12 47
+12 47 9A 44 76 44 0A 64 12 47 2A 40 87 12 76 44
+22 00 E2 44 86 47 08 64 3D 41 35 4F 0E 55 82 4E
+36 20 1C 43 92 42 2C 20 22 20 92 42 2E 20 24 20
+0E 95 8D 24 F5 90 3A 00 01 00 01 20 25 53 F5 90
+5C 00 00 00 08 20 15 53 92 42 02 20 22 20 82 43
+24 20 0E 95 70 24 82 45 34 20 B0 12 84 61 34 40
+20 00 A2 93 02 20 04 24 92 92 22 20 02 20 02 24
+14 42 12 20 B0 12 64 62 2C 43 0A 43 08 4A 58 0E
+08 58 82 48 30 20 C8 93 00 1E 61 24 39 42 F8 95
+00 1E 04 20 18 53 19 83 FA 23 15 53 F5 90 2E 00
+FF FF 19 24 39 50 03 00 B0 12 E2 61 06 20 F5 90
+5C 00 FF FF 29 24 0E 95 27 28 15 42 34 20 1A 53
+3A 90 10 00 DB 23 92 53 1A 20 82 63 1C 20 14 83
+D1 23 2C 42 3C 3C F5 90 2E 00 FE FF EE 27 B0 12
+E2 61 EB 23 39 40 03 00 F8 95 00 1E 04 20 18 53
+19 83 FA 23 09 3C 0E 95 E0 2F F5 90 5C 00 FF FF
+DC 23 B0 12 E2 61 D9 23 18 42 30 20 92 48 1A 1E
+22 20 92 48 14 1E 24 20 F8 B0 10 00 0B 1E 14 24
+82 93 24 20 06 20 82 93 22 20 03 20 92 42 02 20
+22 20 0E 95 8E 2F 92 42 22 20 2C 20 92 42 24 20
+2E 20 8F 43 00 00 03 3C 2A 4F B0 12 6E 62 34 40
+00 40 35 40 0E 40 3A 4F 3E 4F 0A 93 04 24 7A 93
+0D 20 0C 93 01 20 30 4D 87 12 80 44 0B 3C 20 4F
+70 65 6E 45 72 72 6F 72 3C 42 3E 61 1A 93 B6 20
+0C 93 F2 23 30 4D 9E 63 04 52 45 41 44 00 2F 83
+8F 4E 00 00 1E 42 32 20 B0 12 F6 61 1E 82 32 20
+30 4D 2C 43 12 12 2A 20 18 42 02 20 08 58 2A 41
+82 9A 0A 20 A1 24 B0 12 AA 60 09 43 28 93 03 24
+89 93 02 1E 03 20 89 93 00 1E 07 24 09 58 39 90
+00 02 F4 23 91 53 00 00 EA 3F 0C 43 6A 41 B9 43
+00 1E 28 93 0F 24 B9 40 FF 0F 02 1E 09 11 8A 10
+09 5A 5A 41 01 00 0A 11 09 10 82 4A 28 20 82 49
+26 20 07 3C 09 11 C2 49 26 20 C2 4A 27 20 82 43
+28 20 3A 41 82 4A 2A 20 30 41 0A 12 1A 52 08 20
+B0 12 EA 60 3A 41 1A 52 0C 20 30 40 EA 60 F2 B0
+40 00 A2 04 29 20 F2 B0 10 00 A2 04 FC 27 5A 42
+B0 04 4A 11 59 42 B4 04 F2 40 20 00 C0 04 D2 42
+B1 04 C8 04 1A 52 E4 04 D2 42 B5 04 C8 04 19 52
+E4 04 D2 42 B2 04 C0 04 B2 40 00 08 C8 04 1A 52
+E4 04 92 42 B6 04 C0 04 B2 80 BC 07 C0 04 B2 40
+00 02 C8 04 19 52 E4 04 30 41 22 2A 2B 2C 2F 3A
+3B 3C 3D 3E 3F 5B 5C 5D 7C 2E 29 92 06 38 39 80
+03 00 B0 12 CA 66 39 40 03 00 7A 4B C8 4A 00 1E
+82 9B 36 20 12 28 0D 12 3D 40 0F 00 3C 40 7A 66
+7A 9C F3 27 1D 83 FC 23 3D 41 6A 9C E6 27 3A 80
+21 00 EB 3B 18 53 19 83 E8 23 09 93 06 24 F8 40
+20 00 00 1E 18 53 19 83 FA 23 30 41 2A 93 D8 20
+2C 93 0D 24 0C 93 A7 24 87 12 80 44 0C 3C 20 57
+72 69 74 65 45 72 72 6F 72 00 3C 42 3E 61 B0 12
+92 65 92 42 26 20 22 20 92 42 28 20 24 20 B0 12
+0A 66 B0 12 64 62 18 42 30 20 F8 40 20 00 0B 1E
+B0 12 1E 66 88 43 0C 1E 88 4A 0E 1E 88 49 10 1E
+88 49 12 1E 98 42 24 20 14 1E 98 42 22 20 1A 1E
+88 43 1C 1E 88 43 1E 1E 1C 43 1B 42 34 20 82 9B
+36 20 CA 27 FB 90 2E 00 00 00 C6 27 39 40 0B 00
+B0 12 9A 66 B0 12 B6 67 2A 43 B0 12 6E 62 0C 93
+BB 23 30 4D 1A 4B 04 00 19 4B 06 00 B0 12 B0 60
+B0 12 1E 66 18 4B 08 00 88 49 12 1E 88 4A 16 1E
+88 49 18 1E 98 4B 12 00 1C 1E 98 4B 14 00 1E 1E
+1A 4B 04 00 19 4B 06 00 30 40 EC 60 9B 52 1E 20
+12 00 8B 63 14 00 1A 42 1A 20 19 42 1C 20 30 40
+EC 60 B2 40 00 02 1E 20 1B 42 32 20 B0 12 AC 67
+82 43 1E 20 DB 53 03 00 DB 92 12 20 03 00 22 20
+CB 43 03 00 B0 12 56 61 08 12 0A 12 B0 12 92 65
+2A 91 05 24 B0 12 0A 66 2A 41 B0 12 AA 60 3A 41
+38 41 98 42 26 20 00 1E 92 93 02 20 03 24 98 42
+28 20 02 1E B0 12 0A 66 9B 42 26 20 0E 00 9B 42
+28 20 10 00 30 40 C4 61 AA 63 05 57 52 49 54 45
+B0 12 C2 67 30 4D 58 4B 13 00 59 4B 14 00 89 10
+09 58 58 4B 15 00 5B 42 12 20 0A 43 3C 42 08 11
+09 10 4A 10 1C 83 0B 11 FA 2B 0A 11 1C 83 FD 37
+1B 42 32 20 19 5B 0A 00 18 6B 0C 00 8B 49 0E 00
+8B 48 10 00 CB 4A 03 00 1A 4B 12 00 BB C0 FF 01
+12 00 3A F0 FF 01 82 4A 1E 20 B0 12 60 62 30 4D
+0C 93 38 20 38 90 E0 01 03 2C C8 93 20 1E 02 24
+7C 40 E5 00 C8 4C 00 1E B0 12 B6 67 B0 12 62 61
+82 4A 2A 20 0B 4A B0 12 AA 60 1A 48 00 1E 88 43
+00 1E 92 93 02 20 09 24 19 48 02 1E 88 43 02 1E
+39 F0 FF 0F 39 90 FF 0F 02 20 3A 93 0E 24 82 4A
+22 20 82 49 24 20 B0 12 62 61 0B 9A E6 27 0A 12
+0A 4B B0 12 0A 66 3A 41 DD 3F 0A 4B B0 12 0A 66
+B0 12 56 63 30 4D 38 4C 08 54 45 52 4D 32 53 44
+22 00 87 12 BE 63 76 44 02 00 02 47 86 47 0A 64
+22 69 3D 41 92 C3 DC 05 08 43 B0 12 B6 42 92 B3
+DC 05 FD 27 59 42 CC 05 69 92 0D 24 C8 49 00 1E
+18 53 38 90 FF 01 F3 2B 03 24 B0 12 C2 67 EC 3F
+B0 12 C8 42 EC 3F B0 12 C8 42 82 48 1E 20 B0 12
+56 63 30 4D
 @FFFE
-BC 53
+F6 50
 q
index 1b81df8..79f93b9 100644 (file)
 @1800
-10 00 08 00 A1 F7 80 3E 05 00 18 00 7C 64 98 52
-2C 01 7F B0 00 48 12 48
+10 00 08 00 A1 F7 80 3E 05 00 18 00 AA 61 D4 50
+2D 01 6F B0 B6 46 C8 46
 @4400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 44
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 44 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 44 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 44 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 44 02 3E 52 00
-0E 12 3E 4F 30 4D 96 44 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 44 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 44 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 44 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 45 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 44 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 45 02 31 2D 00
-1E 83 30 4D D8 44 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 45
-02 30 3D 00 1E 83 0E 7E 30 4D 60 45 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 45 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 44 01 3E 3E 8F F4 3B EB 37 0E 45 02 42 4C 00
-85 12 20 00 AC 45 04 42 41 53 45 00 85 12 DC 1D
-C8 44 05 53 54 41 54 45 85 12 BE 1D 96 45 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 45 06 55 4D 2F
-4D 4F 44 00 30 12 62 44 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 44 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 45
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 45 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 46
-02 23 53 00 87 12 32 46 6A 46 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 46 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 45 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 45
-02 44 2E 00 87 12 D2 45 44 44 B0 44 4C 45 64 46
-BC 44 A2 46 7E 46 22 49 EA 48 2A 44 DC 45 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 44
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 46 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 44
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A 46
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 46 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 46 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 45 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 47 03 4B 45 59 30 40 A0 47
-18 42 EC 05 2F 83 8F 4E 00 00 B0 12 00 48 92 B3
-FC 05 FD 27 1E 42 EC 05 B0 12 12 48 30 4D 00 47
-06 41 43 43 45 50 54 00 30 40 CC 47 3C 40 6E 48
-3B 40 38 48 2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00
-3C 40 20 00 3D 40 62 48 92 B3 FC 05 05 24 18 42
-EC 05 38 90 0A 00 04 20 21 53 39 40 26 48 4D 15
-A2 B3 FC 05 FD 27 B2 40 11 00 EE 05 D2 C3 22 02
-30 41 B2 40 13 00 EE 05 D2 D3 22 02 30 41 00 00
-05 53 4C 45 45 50 30 40 2A 48 12 D2 0A 18 FB 3F
-21 52 3A 17 58 42 EC 05 48 9C 08 2C 48 9B E9 27
-78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24
-CE 48 00 00 1E 53 A2 B3 FC 05 FD 27 82 48 EE 05
-30 4D 64 48 2D 83 92 B3 FC 05 E4 23 FC 27 82 93
-DE 1D 02 24 92 53 DE 1D 3E 8F 3D 41 B2 40 18 00
-0A 18 30 4D B0 46 04 45 4D 49 54 00 30 40 90 48
-08 4E 3E 4F E0 3F 10 47 03 43 49 42 85 12 3C 1D
-3F 80 06 00 8F 4E 04 00 3E 40 54 00 9F 42 9E 48
-00 00 AF 4F 02 00 88 3F 86 48 04 45 43 48 4F 00
-B2 40 82 48 5C 48 82 43 DE 1D 30 4D E0 46 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 5C 48 92 43 DE 1D
-30 4D 9C 46 05 53 50 41 43 45 2F 83 8F 4E 00 00
-3E 40 20 00 CB 3F E4 48 06 53 50 41 43 45 53 00
-0E 93 09 24 0D 12 3D 40 0C 49 EF 3F 0E 49 2D 83
-1E 83 EB 23 3D 41 3E 4F 30 4D 66 47 04 54 59 50
-45 00 0E 93 0F 24 1E 15 3D 40 38 49 28 4F 7E 48
-8F 48 00 00 2F 83 AA 3F 3A 49 2D 83 91 83 02 00
-F5 23 1D 17 2F 53 3E 4F 30 4D 98 48 02 43 52 00
-30 40 54 49 87 12 60 49 02 0D 0A 00 22 49 2A 44
-2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
-0D 63 30 4D F8 48 82 53 22 00 82 43 B4 1D 87 12
-34 44 60 49 D6 4B 34 44 22 00 C4 49 8E 49 3D 41
-B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D 3E 4F
-92 B3 C6 1D A2 63 C6 1D 30 4D CE 48 82 2E 22 00
-87 12 7A 49 34 44 22 49 D6 4B 2A 44 00 00 04 57
-4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A 3A 5C
-28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40 60 00
-C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24 18 53
-4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D F0 3F
-1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E CE 48
-00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83 0C 4E
-65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93 1E 24
-58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E FE FF
-0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23 0A 4C
-FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
-0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C 00 00
-35 40 0E 44 34 40 00 44 30 4D A2 45 07 3E 4E 55
-4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42 DC 1D
-6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80 07 00
-7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49 D0 04
-82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42 E6 04
-09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00 8F 48
-02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43 2D 15
-3D 40 1E 4B 09 43 08 43 3F 82 8F 4E 06 00 0C 4E
-7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43 02 00
-E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53 04 24
-3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F 20 4B
-2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02 7A 90
-F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43 8F 49
-02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00 79 90
-0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28 09 9B
-08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 45 2A 17
-E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A 4E 93
-2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02 3F 50
-06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00 BF 4F
-00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3 00 00
-9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20 2F 53
-30 4D BA 48 07 45 58 45 43 55 54 45 0A 4E 3E 4F
-00 4A 26 45 01 2C 1A 42 C6 1D A2 53 C6 1D 8A 4E
-00 00 3E 4F 30 4D D4 4B 87 4C 49 54 45 52 41 4C
-82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D BA 40
-34 44 00 00 8A 4E 02 00 3E 4F 32 B0 00 02 32 C0
-00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49 EB 3F
-30 4D 4C 49 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F C2 1D
-3E 4F 82 43 C4 1D 30 4D 87 12 38 4C B0 45 C4 49
-52 4C 3D 40 5A 4C E2 22 5D 3E 5C 4C 0A 4E 3E 4F
-3D 40 72 4C 39 27 3D 40 4C 4C 1A E2 BE 1D B3 27
-AD 23 74 4C 3E 4F 3D 40 4C 4C BA 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 3E 4F CD 3F
-C4 4B 08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D
-3C 49 3B 49 3A 49 3D 15 B0 12 2A 44 48 4C B0 4C
-B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D
-6C 45 04 51 55 49 54 00 82 43 08 18 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44 50 49
-A0 48 EA 48 48 4C DE 44 70 45 60 49 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 3C 4D 34 44 30 FF
-F2 46 8A 45 60 49 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 3C 4D 24 47 DE 4C C0 47 05 41 42 4F 52 54
-3F 40 80 1C D1 3F 1A 4D 86 41 42 4F 52 54 22 00
-87 12 7A 49 34 44 3C 4D D6 4B 2A 44 8F 93 02 00
-03 20 2F 52 3E 4F 30 4D B0 12 FE 54 B0 12 00 48
-92 C3 FC 05 38 40 A0 AA 39 42 09 59 03 43 19 83
-FD 23 18 83 F9 23 92 B3 FC 05 F2 23 87 12 78 54
-34 44 DE 1D F2 44 C0 48 60 49 04 1B 5B 37 6D 00
-22 49 54 44 28 47 98 4D 50 49 60 49 05 6C 69 6E
-65 3A 22 49 40 45 D2 46 22 49 60 49 04 1B 5B 30
-6D 00 22 49 20 4D 00 00 83 5B 27 5D 87 12 BE 4D
-34 44 34 44 D6 4B D6 4B 2A 44 16 4A 01 27 87 12
-B0 45 C4 49 1C 4A 28 47 CC 4D 2A 44 7C 4C CE 45
-81 5C 92 42 C0 1D C4 1D 30 4D A8 4D 81 5B 82 43
-BE 1D 30 4D D0 4D 01 5D B2 43 BE 1D 30 4D BE 4F
-02 00 3E 4F 30 4D 72 47 82 49 53 00 87 12 C8 45
-F2 44 28 47 10 4E AC 4D 34 44 EE 4D D6 4B 2A 44
-BE 4D EE 4D 2A 44 F8 4D 09 49 4D 4D 45 44 49 41
-54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D 76 49
-87 52 45 43 55 52 53 45 19 42 C6 1D 99 42 BA 1D
-00 00 A2 53 C6 1D 30 4D C2 4C 88 50 4F 53 54 50
-4F 4E 45 00 87 12 B0 45 C4 49 1C 4A 54 44 28 47
-CC 4D 70 45 28 47 74 4E 34 44 34 44 D6 4B D6 4B
-34 44 D6 4B D6 4B 2A 44 DC 4D 81 3B 82 93 BE 1D
-A8 27 87 12 34 44 2A 44 D6 4B 12 4F DE 4D 2A 44
-7A 4E 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E 00 00
-1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02 B0 12
-FE 4E BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D
-82 4F BC 1D 30 4D 92 4E 01 3A 30 12 B2 4E 87 12
-A0 49 B0 45 C4 49 D8 4E 3D 41 08 4E 7A 4E 5A D3
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 44
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 44
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 44
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 44 02 3E 52 00 0E 12 3E 4F 30 4D 70 44 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 44 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 44 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 44
+01 21 BE 4F 00 00 3E 4F 30 4D CC 44 02 30 3D 00
+1E 83 0E 7E 30 4D FC 44 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 45 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 45 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 45 02 23 53 00 87 12 88 45 C0 45
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 45
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 44 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 45 34 44 86 44 D4 44 BA 45
+92 44 F8 45 D4 45 D6 47 42 4B 82 47 2A 44 22 45
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 45 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 46 18 42 EC 05 2F 83 8F 4E
+00 00 B0 12 B6 46 92 B3 FC 05 FD 27 1E 42 EC 05
+B0 12 C8 46 30 4D A2 B3 FC 05 FD 27 B2 40 11 00
+EE 05 D2 C3 22 02 30 41 B2 40 13 00 EE 05 D2 D3
+22 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 46
+B0 12 B6 46 12 D2 0A 18 F9 3F F0 44 06 41 43 43
+45 50 54 00 3C 40 64 47 3B 40 2E 47 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 47
+92 B3 FC 05 05 24 18 42 EC 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 EC 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 FC 05
+FD 27 82 48 EE 05 30 4D 5A 47 2D 83 92 B3 FC 05
+E4 23 FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 44 04 45 4D 49
+54 00 30 40 86 47 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
+02 00 A8 3F 7C 47 04 45 43 48 4F 00 B2 40 82 48
+52 47 82 43 DE 1D 30 4D 32 46 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 47 92 43 DE 1D 30 4D 20 46
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 47
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 47 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 45
+02 43 52 00 30 40 08 48 87 12 1E 48 02 0D 0A 00
+D6 47 2A 44 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 45 82 53 22 00 82 43 B4 1D 87 12 14 48
+1E 48 B0 4A 14 48 22 00 80 48 4C 48 B2 40 20 00
+B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41 3E 4F
+30 4D BA 47 82 2E 22 00 87 12 38 48 14 48 D6 47
+B0 4A 2A 44 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52 C4 1D
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D 3B 40
+60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
+18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D
+F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E
+CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
+0C 4E 65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
+FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
+00 00 35 40 0E 44 34 40 00 44 30 4D 82 44 07 3E
+4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
+DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
+07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
+D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 1D 0C 43 2D 15 3D 40 F4 49 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 49 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 45 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 46 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 44 01 2C
+1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D
+EC 46 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D
+A6 47 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 4A 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
+1A 42 C6 1D A2 52 C6 1D BA 40 14 48 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 48 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
+30 4D 85 12 20 00 87 12 32 4B 42 4B 80 48 50 4B
+3D 40 58 4B CC 22 82 3E 5A 4B 0A 4E 3E 4F 3D 40
+70 4B 23 27 3D 40 4A 4B 1A E2 BE 1D A1 27 B5 23
+72 4B 3E 4F 3D 40 4A 4B B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 4E CB 3F D2 4A
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 44 46 4B AE 4B B2 41
+C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D 85 12
+BE 1D 08 45 04 51 55 49 54 00 82 43 08 18 31 40
+E0 1C B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44
+04 48 8C 47 42 4B 82 47 46 4B A4 44 0C 45 1E 48
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 4C
+14 48 30 FF A0 4A 26 45 1E 48 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 4C 3C 46 E0 4B C2 4A 05 41
+42 4F 52 54 3F 40 80 1C D0 3F 1E 4C 86 41 42 4F
+52 54 22 00 87 12 38 48 14 48 40 4C B0 4A 2A 44
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 CC 51
+B0 12 B6 46 92 C3 FC 05 38 40 A0 AA 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 FC 05 F3 23 87 12
+46 51 14 48 DE 1D EA 44 AC 47 1E 48 04 1B 5B 37
+6D 00 D6 47 58 44 40 46 9A 4C 04 48 1E 48 05 6C
+69 6E 65 3A D6 47 D0 44 24 46 D6 47 1E 48 04 1B
+5B 30 6D 00 D6 47 24 4C 00 00 83 5B 27 5D 87 12
+C0 4C 14 48 14 48 B0 4A B0 4A 2A 44 E8 48 01 27
+87 12 42 4B 80 48 EE 48 40 46 CE 4C 2A 44 7A 4B
+32 45 81 5C 92 42 C0 1D C4 1D 30 4D AA 4C 81 5B
+82 43 BE 1D 30 4D D2 4C 01 5D B2 43 BE 1D 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 4A 82 49 53 00 87 12
+BE 4B EA 44 40 46 12 4D AE 4C 14 48 F0 4C B0 4A
+2A 44 C0 4C F0 4C 2A 44 FA 4C 09 49 4D 4D 45 44
+49 41 54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D
+C4 4B 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 4B
+80 48 EE 48 58 44 40 46 CE 4C 0C 45 40 46 5C 4D
+14 48 14 48 B0 4A B0 4A 14 48 B0 4A B0 4A 2A 44
+DE 4C 81 3B 82 93 BE 1D B5 27 87 12 14 48 2A 44
+B0 4A FA 4D E0 4C 2A 44 62 4D 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 4D 2F 83 8F 4E 00 00 1E 42 C6 1D
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 30 4D
+7A 4D 01 3A 30 12 A0 4D 92 B3 C6 1D A2 63 C6 1D
+87 12 42 4B 80 48 C8 4D 3D 41 08 4E 7A 4E 5A D3
 5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E
-3E 4F BA 40 30 40 00 00 BA 40 C4 4E 02 00 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D
-30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D
-A8 49 FE FF 89 48 00 00 30 4D 87 12 60 49 0F 73
-74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 48 4D
-BE 49 08 56 41 52 49 41 42 4C 45 00 B0 12 CE 4E
-BA 40 86 12 FC FF E4 3F 24 4C 08 43 4F 4E 53 54
-41 4E 54 00 B0 12 CE 4E BA 40 85 12 FC FF 8A 4E
-FE FF 3E 4F D5 3F 5A 4F 06 43 52 45 41 54 45 00
-B0 12 CE 4E BA 40 85 12 FC FF 8A 4A FE FF C8 3F
-92 4C 05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12
-00 00 8A 4D 02 00 3D 41 30 4D 92 4F 05 44 45 46
-45 52 30 12 20 4F 8B 3F 7C 4A 05 3E 42 4F 44 59
-2E 52 30 4D 78 4F 04 43 4F 44 45 00 B0 12 CE 4E
-2A 82 82 4A C6 1D 87 12 C0 4E A2 52 74 52 2A 44
-C6 4F 07 43 4F 44 45 4E 4E 4D 87 12 9A 4E DE 4D
-D0 4F 2A 44 00 00 07 45 4E 44 43 4F 44 45 87 12
-BC 52 12 4F 2A 44 28 4D 03 41 53 4D 92 42 DA 1D
-EC 1D B2 40 78 52 DA 1D D9 3F F6 4F 06 45 4E 44
-41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00 05 43
-4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53
-C6 1D B2 43 BE 1D 30 40 BC 52 00 00 05 4C 4F 32
-48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A 44
-02 00 A2 52 C6 1D ED 3F 18 4E 85 48 49 32 4C 4F
-87 12 F2 46 9A 50 D6 4B DE 4D A2 52 74 52 2A 44
-6A 50 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
-A2 52 C6 1D BE 40 28 47 00 00 2E 53 30 4D AC 4F
-84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40
-24 47 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D 1C 49
-84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D
-E2 4F 85 42 45 47 49 4E 30 40 F2 46 C0 50 85 55
-4E 54 49 4C 39 40 28 47 A2 52 C6 1D 1A 42 C6 1D
-8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D 08 50 85 41
-47 41 49 4E 39 40 24 47 EF 3F 42 4F 85 57 48 49
-4C 45 87 12 86 50 78 44 2A 44 30 4E 86 52 45 50
-45 41 54 00 87 12 04 51 C6 50 2A 44 A0 50 82 44
-4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D
-BE 40 3C 47 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
-00 00 30 4D E8 4B 84 4C 4F 4F 50 00 39 40 5E 47
-A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
-1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A
-00 00 F6 3F 3E 4F 30 4D 98 47 85 2B 4C 4F 4F 50
-39 40 4C 47 E5 3F 56 51 85 4C 45 41 56 45 1A 42
-C6 1D BA 40 6E 47 00 00 BA 40 24 47 02 00 B2 50
-06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C 89 4A
-00 00 30 4D 98 51 04 4D 4F 56 45 00 0A 4E 38 4F
-39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49
-00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 0C 51 0A 56
-4F 43 41 42 55 4C 41 52 59 00 87 12 80 4F 34 44
-10 00 34 44 00 00 3C 47 34 44 00 00 D6 4B 5E 47
-18 52 F2 46 34 44 C8 1D 44 44 F2 44 D6 4B FA 44
-98 4F 34 44 CA 1D FA 44 2A 44 BC 4D 05 46 4F 52
-54 48 84 12 32 52 9C 52 DE 55 DA 52 3C 52 82 50
-8A 51 06 54 CC 52 9C 54 1C 57 DE 50 4E 55 00 00
-DA 53 E6 4D BA 4F 00 00 FE 50 09 41 53 53 45 4D
-42 4C 45 52 84 12 32 52 0E 63 A6 62 0A 62 9C 5D
-44 5C C0 5D D2 60 00 00 34 64 46 64 9C 5C DA 5C
-DA 62 00 00 00 00 CE 5D 66 52 6A 52 04 41 4C 53
-4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F
-4A 4E 08 50 52 45 56 49 4F 55 53 00 3A 40 0E 00
-39 40 CC 1D 38 40 CA 1D 8A 3F AC 49 04 4F 4E 4C
-59 00 82 43 CC 1D 30 4D 2E 51 0B 44 45 46 49 4E
-49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D D2 50
-07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53
-F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D
-C8 4E 86 5B 54 48 45 4E 5D 00 30 4D 22 53 86 5B
-45 4C 53 45 5D 00 87 12 34 44 00 00 36 45 B0 45
-C4 49 2A 4C 44 44 28 47 9C 53 8A 44 8A 44 60 49
-06 5B 54 48 45 4E 5D 00 F8 52 32 47 6A 53 44 49
-40 45 54 44 32 47 3E 53 2A 44 8A 44 8A 44 60 49
-06 5B 45 4C 53 45 5D 00 F8 52 32 47 8A 53 44 49
-40 45 54 44 32 47 3C 53 2A 44 60 49 04 5B 49 46
-5D 00 F8 52 32 47 3E 53 24 47 3C 53 44 49 60 49
-05 0D 0A 6B 6F 20 22 49 A0 48 38 4C 24 47 3E 53
-2E 53 84 5B 49 46 5D 00 0E 93 3E 4F BC 27 30 4D
-B2 53 89 5B 44 45 46 49 4E 45 44 5D 87 12 B0 45
-C4 49 1C 4A 6C 44 2A 44 C2 53 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 87 12 B0 45 C4 49 1C 4A 6C 44
-64 45 2A 44 F6 53 3D 41 B2 4E 0E 18 A2 4E 0C 18
-3E 4F 44 3C C6 51 06 4D 41 52 4B 45 52 00 B0 12
-CE 4E BA 40 84 12 FC FF BA 40 F4 53 FE FF 9A 42
-C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40
-18 4F 42 52 D2 52 E6 52 3A 54 3A 4E 82 4A C8 1D
-2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83
-18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23
-2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D B2 52 09 50
-57 52 5F 53 54 41 54 45 84 12 32 54 98 52 7C 64
-1C 51 09 52 53 54 5F 53 54 41 54 45 92 42 0E 18
-7C 54 92 42 0C 18 7E 54 EF 3F 6E 54 08 50 57 52
-5F 48 45 52 45 00 92 42 C8 1D 7C 54 92 42 C6 1D
-7E 54 30 4D 82 54 08 52 53 54 5F 48 45 52 45 00
-92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F FE 51
-04 57 49 50 45 00 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B2 40 2A 48 28 48 B2 40 58 55 56 55 B2 40
-98 52 0E 18 B2 40 7C 64 0C 18 30 12 8C 54 B2 40
-90 48 8E 48 B2 40 54 49 52 49 B2 40 A0 47 9E 47
-B2 40 CC 47 CA 47 B2 40 3C 1D 9E 48 B2 40 18 00
-0A 18 37 40 1A 44 36 40 BC 44 35 40 0E 44 34 40
-00 44 39 40 10 00 29 83 89 43 E0 1D FC 23 B2 40
-0A 00 DC 1D B2 40 20 00 B4 1D 30 41 D0 54 04 57
-41 52 4D 00 30 40 58 55 3D 40 8E 55 92 C3 30 01
-1E 42 08 18 0E 93 12 24 F2 B0 10 00 20 02 02 20
-3E E3 1E 53 F2 D0 30 00 2A 02 3E 90 0A 00 AB 27
-3E 90 16 00 A8 2F 2E 93 77 27 80 2F 30 4D 60 49
-06 0D 1B 5B 37 6D 23 00 22 49 E2 46 60 49 1F 46
-61 73 74 46 6F 72 74 68 20 56 33 30 30 20 28 43
-29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 20 22 49
-34 44 80 FF F2 46 28 45 D2 46 60 49 0B 62 79 74
-65 73 20 66 72 65 65 20 24 47 98 4D F0 52 04 43
+3E 4F 82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F
+BC 1D 2A 52 82 4A C6 1D 30 41 82 9F BC 1D 09 20
+18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 48 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 4C 90 4B 05 44 45 46 45 52
+B0 12 B8 4D BA 40 30 40 FC FF BA 40 AE 4D FE FF
+E3 3F 1E 4B 06 43 52 45 41 54 45 00 B0 12 B8 4D
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 4E 05 44
+4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 49 05 3E 42 4F 44 59 2E 52
+30 4D 44 4E 04 43 4F 44 45 00 B0 12 B8 4D 82 43
+6E 61 A2 82 C6 1D 87 12 D6 50 B0 50 2A 44 84 4E
+07 43 4F 44 45 4E 4E 4D B0 12 86 4D F0 3F 00 00
+07 45 4E 44 43 4F 44 45 87 12 E4 50 FA 4D 2A 44
+2C 4C 03 41 53 4D B2 40 B4 50 DA 1D DE 3F B0 4E
+06 45 4E 44 41 53 4D 00 87 12 B8 4E F8 50 2A 44
+00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12
+00 00 A2 53 C6 1D B2 43 BE 1D 30 40 E4 50 00 00
+05 4C 4F 32 48 49 1A 42 C6 1D BA 40 B0 12 00 00
+BA 40 2A 44 02 00 A2 52 C6 1D ED 3F 1A 4D 85 48
+49 32 4C 4F 87 12 A0 4A 4E 4F B0 4A E0 4C D6 50
+B0 50 2A 44 1E 4F 82 49 46 00 2F 83 8F 4E 00 00
+1E 42 C6 1D A2 52 C6 1D BE 40 40 46 00 00 2E 53
+30 4D 5E 4E 84 45 4C 53 45 00 A2 52 C6 1D 1A 42
+C6 1D BA 40 3C 46 FC FF 8E 4A 00 00 2A 83 0E 4A
+30 4D D0 47 84 54 48 45 4E 00 9E 42 C6 1D 00 00
+3E 4F 30 4D A0 4E 85 42 45 47 49 4E 30 40 A0 4A
+74 4F 85 55 4E 54 49 4C 39 40 40 46 A2 52 C6 1D
+1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D
+C2 4E 85 41 47 41 49 4E 39 40 3C 46 EF 3F 7A 48
+85 57 48 49 4C 45 87 12 3A 4F 76 44 2A 44 34 48
+86 52 45 50 45 41 54 00 87 12 B8 4F 7A 4F 2A 44
+54 4F 82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D
+1E 42 C6 1D BE 40 54 46 FE FF A2 53 00 1C 1A 42
+00 1C 8A 43 00 00 30 4D E2 4A 84 4C 4F 4F 50 00
+39 40 76 46 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF
+8A 4E FE FF 1E 42 00 1C A2 83 00 1C 2E 4E 0E 93
+03 24 8E 4A 00 00 F6 3F 3E 4F 30 4D 90 46 85 2B
+4C 4F 4F 50 39 40 64 46 E5 3F 0A 50 04 4D 4F 56
+45 00 0A 4E 38 4F 39 4F 3E 4F 0A 93 11 24 08 99
+0F 24 06 2C F8 49 00 00 18 53 1A 83 FB 23 30 4D
+08 5A 09 5A 19 83 18 83 E8 49 00 00 1A 83 FA 23
+30 4D 14 48 CA 1D F2 44 2A 44 84 12 82 50 B2 4F
+7A 53 E2 4F BE 4C 36 4F 3E 50 8E 54 64 48 6A 51
+84 51 92 4F 04 52 00 00 60 54 E8 4C 78 4E 00 00
+84 12 82 50 38 60 D0 5F 34 5F F8 5A 9C 59 00 00
+FC 5D 00 00 5E 61 72 61 F4 59 32 5A 04 60 00 00
+00 00 D4 5A AE 50 3A 40 0C 00 39 40 CA 1D 38 40
+CC 1D C6 3F 3A 40 0E 00 39 40 CC 1D 38 40 CA 1D
+B9 3F 82 43 CC 1D 30 4D 92 42 CA 1D DA 1D 30 4D
+8A 50 F2 50 F8 50 08 51 3A 4E 82 4A C8 1D 2E 4E
+82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23 2A 4A
+0A 93 F0 23 3E 4F 3D 41 30 4D 32 4D 09 50 57 52
+5F 53 54 41 54 45 84 12 00 51 D4 50 AA 61 D0 4F
+09 52 53 54 5F 53 54 41 54 45 92 42 0E 18 4A 51
+92 42 0C 18 4C 51 EF 3F 3C 51 08 50 57 52 5F 48
+45 52 45 00 92 42 C8 1D 4A 51 92 42 C6 1D 4C 51
+30 4D 50 51 08 52 53 54 5F 48 45 52 45 00 92 42
+C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F C0 4F 04 57
+49 50 45 00 39 40 10 00 29 83 B9 43 80 FF FC 23
+B2 40 E0 46 DE 46 B2 40 0E 52 0C 52 B2 40 D4 50
+0E 18 B2 40 AA 61 0C 18 30 12 5A 51 B2 40 86 47
+84 47 B2 40 08 48 06 48 B2 40 98 46 96 46 B2 40
+18 00 0A 18 37 40 1A 44 36 40 92 44 35 40 0E 44
+34 40 00 44 B2 40 0A 00 DC 1D B2 40 20 00 B4 1D
+30 41 9E 51 04 57 41 52 4D 00 30 40 0E 52 3D 40
+44 52 92 C3 30 01 1E 42 08 18 0E 93 12 24 F2 B0
+10 00 20 02 02 20 3E E3 1E 53 F2 D0 30 00 2A 02
+3E 90 0A 00 B7 27 3E 90 16 00 B4 2F 2E 93 83 27
+8C 2F 30 4D 1E 48 06 0D 1B 5B 37 6D 23 00 D6 47
+34 46 1E 48 19 46 61 73 74 46 6F 72 74 68 20 C2
+A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 20 D6 47
+14 48 30 FF A0 4A B8 44 24 46 1E 48 0A 62 79 74
+65 73 20 66 72 65 65 00 3C 46 9A 4C 86 4F 04 43
 4F 4C 44 00 92 B3 EA 05 FD 23 B2 40 04 A5 20 01
-B2 40 88 5A 5C 01 92 43 04 02 B2 40 FE FF 02 02
-A2 83 06 02 B2 43 26 02 B2 43 22 02 D2 D3 24 02
-B2 43 42 02 B2 43 46 02 B2 43 62 02 B2 43 66 02
-B2 40 80 00 84 02 B2 40 7F FF 82 02 B2 40 7F FF
-86 02 F2 43 22 03 F2 43 26 03 F2 40 A5 00 41 01
-F2 40 10 00 40 01 D2 43 41 01 F2 40 A5 00 61 01
-B2 40 48 00 62 01 82 43 66 01 39 40 00 01 B2 40
-33 00 64 01 D2 43 61 01 92 D2 9E 01 08 18 38 40
-59 14 18 83 FE 23 19 83 FA 23 B2 42 B0 01 F2 D0
-10 00 2A 03 F2 C0 40 00 A2 04 39 40 00 08 29 83
-89 43 00 1C FC 23 39 40 3A 00 29 83 B9 40 F0 55
-C6 FF FB 23 B2 40 30 48 E4 FF B2 40 81 00 E0 05
-92 42 02 18 E6 05 92 42 04 18 E8 05 92 C3 E0 05
-92 D3 FA 05 3F 40 80 1C 31 40 E0 1C 30 12 54 55
-25 3F 38 40 C0 1D 39 48 2A 48 09 5A 1A 52 C4 1D
-09 9A 03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A
-C4 1D 30 4D B6 54 09 32 43 4F 4E 53 54 41 4E 54
-87 12 80 4F D6 4B D6 4B 98 4F 0C 57 2F 83 9F 4E
-02 00 00 00 2E 4E 3D 41 30 4D F6 56 09 32 56 41
-52 49 41 42 4C 45 87 12 80 4F 34 44 04 00 06 47
-98 4F 2A 44 1C 15 B0 12 2A 44 C4 49 1C 4A 32 47
-4A 57 D8 4A 28 47 CC 4D 82 57 4C 57 29 4E 39 90
-86 12 02 20 2E 53 15 3C 39 90 85 12 03 20 1E 4E
-02 00 0F 3C 39 90 84 12 0C 20 2E 52 B9 90 0A 57
-02 00 04 24 B9 90 32 57 02 00 03 20 B0 12 0C 57
-82 57 1B 17 30 41 32 B0 00 02 01 24 3E 4F 30 41
-3E 40 28 00 B0 12 34 57 B0 12 86 57 19 42 C6 1D
-A2 53 C6 1D 89 4E 00 00 3E 40 29 00 1C 15 12 12
-C4 1D 92 53 C4 1D B0 12 2A 44 C4 49 D8 4A 28 47
-CE 57 C4 57 21 53 3E 90 10 00 87 2D DA 2B D0 57
-B2 41 C4 1D D6 3F 87 12 B0 45 D2 56 DE 57 0C 43
-1B 42 C6 1D A2 53 C6 1D 6A 4E 3E 4F 7A 90 23 00
-2F 20 92 53 C4 1D B0 12 34 57 B0 12 86 57 0E 93
-03 20 3C 40 00 03 21 3C 1E 93 03 20 3C 40 10 03
-1C 3C 2E 93 03 20 3C 40 20 03 17 3C 2E 92 03 20
-3C 40 20 02 12 3C 3E 92 03 20 3C 40 30 02 0D 3C
-3E 93 03 20 3C 40 30 03 08 3C 3C 40 30 00 19 42
-C6 1D A2 53 C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D
-7A 90 26 00 09 20 3C 40 10 02 92 53 C4 1D B0 12
-34 57 B0 12 86 57 EB 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 1D B0 12 AC 57 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 AC 57 92 92 C0 1D C4 1D 02 24
-92 53 C4 1D 8E 10 0C 5E D8 3F B0 12 AC 57 FA 23
-3C 50 10 00 B0 12 90 57 EF 3F 0C 43 1B 42 C6 1D
-A2 53 C6 1D 87 12 B0 45 D2 56 BC 58 FE 90 26 00
-00 00 3E 40 20 00 03 20 3C 50 82 00 C6 3F B0 12
-AC 57 E1 23 3C 50 80 00 B0 12 90 57 DC 3F 20 48
-04 52 45 54 49 00 87 12 34 44 00 13 D6 4B 2A 44
-34 44 2C 00 D6 57 B4 58 FA 58 2E 4E 0E DC 09 4B
-A2 3F 4C 50 03 4D 4F 56 84 12 F0 58 00 40 04 59
-05 4D 4F 56 2E 42 84 12 F0 58 40 40 00 00 03 41
-44 44 84 12 F0 58 00 50 1E 59 05 41 44 44 2E 42
-84 12 F0 58 40 50 2A 59 04 41 44 44 43 00 84 12
-F0 58 00 60 38 59 06 41 44 44 43 2E 42 00 84 12
-F0 58 40 60 E0 58 04 53 55 42 43 00 84 12 F0 58
-00 70 56 59 06 53 55 42 43 2E 42 00 84 12 F0 58
-40 70 64 59 03 53 55 42 84 12 F0 58 00 80 74 59
-05 53 55 42 2E 42 84 12 F0 58 40 80 2E 50 03 43
-4D 50 84 12 F0 58 00 90 8E 59 05 43 4D 50 2E 42
-84 12 F0 58 40 90 1C 50 04 44 41 44 44 00 84 12
-F0 58 00 A0 A8 59 06 44 41 44 44 2E 42 00 84 12
-F0 58 40 A0 9A 59 03 42 49 54 84 12 F0 58 00 B0
-C6 59 05 42 49 54 2E 42 84 12 F0 58 40 B0 D2 59
-03 42 49 43 84 12 F0 58 00 C0 E0 59 05 42 49 43
-2E 42 84 12 F0 58 40 C0 EC 59 03 42 49 53 84 12
-F0 58 00 D0 FA 59 05 42 49 53 2E 42 84 12 F0 58
-40 D0 00 00 03 58 4F 52 84 12 F0 58 00 E0 14 5A
-05 58 4F 52 2E 42 84 12 F0 58 40 E0 46 59 03 41
-4E 44 84 12 F0 58 00 F0 2E 5A 05 41 4E 44 2E 42
-84 12 F0 58 40 F0 B0 45 D6 57 4C 5A 0A 4C 3C F0
-70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 80 59 03 52
-52 43 84 12 46 5A 00 10 5E 5A 05 52 52 43 2E 42
-84 12 46 5A 40 10 6A 5A 04 53 57 50 42 00 84 12
-46 5A 80 10 78 5A 03 52 52 41 84 12 46 5A 00 11
-86 5A 05 52 52 41 2E 42 84 12 46 5A 40 11 92 5A
-03 53 58 54 84 12 46 5A 80 11 00 00 04 50 55 53
-48 00 84 12 46 5A 00 12 AC 5A 06 50 55 53 48 2E
-42 00 84 12 46 5A 40 12 06 5A 04 43 41 4C 4C 00
-84 12 46 5A 80 12 1A 53 0E 4A 87 12 E2 46 60 49
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 48 4D
-B0 45 D2 56 F6 5A 92 53 C4 1D 3E 40 2C 00 B0 12
-2A 44 C4 49 D8 4A 28 47 CC 4D AA 58 0E 5B 0A 4E
-3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F
-2A 92 D1 2F 8A 10 5A 06 8F 3F A0 5A 06 52 52 43
-4D 2E 41 00 84 12 F0 5A 40 00 3C 5B 04 52 52 43
-4D 00 84 12 F0 5A 50 00 4C 5B 06 52 52 41 4D 2E
-41 00 84 12 F0 5A 40 01 5A 5B 04 52 52 41 4D 00
-84 12 F0 5A 50 01 6A 5B 06 52 4C 41 4D 2E 41 00
-84 12 F0 5A 40 02 78 5B 04 52 4C 41 4D 00 84 12
-F0 5A 50 02 88 5B 06 52 52 55 4D 2E 41 00 84 12
-F0 5A 40 03 96 5B 04 52 52 55 4D 00 84 12 F0 5A
-50 03 BA 5A 07 50 55 53 48 4D 2E 41 84 12 F0 5A
-00 14 B4 5B 05 50 55 53 48 4D 84 12 F0 5A 00 15
-C4 5B 06 50 4F 50 4D 2E 41 00 84 12 F0 5A 00 16
-D2 5B 04 50 4F 50 4D 00 84 12 F0 5A 00 17 85 12
-00 3C A6 5B 03 53 3E 3D 85 12 00 38 F4 5B 02 53
-3C 00 85 12 00 34 E2 5B 03 30 3E 3D 85 12 00 30
-08 5C 02 30 3C 00 85 12 00 30 00 00 02 55 3C 00
-85 12 00 2C 1C 5C 03 55 3E 3D 85 12 00 28 12 5C
-03 30 3C 3E 85 12 00 24 30 5C 02 30 3D 00 85 12
-00 20 00 00 02 49 46 00 1A 42 C6 1D 8A 4E 00 00
-A2 53 C6 1D 0E 4A 30 4D 26 5C 04 54 48 45 4E 00
-1A 42 C6 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11
-3A 90 00 02 31 2F 88 DA 00 00 30 4D B6 59 04 45
-4C 53 45 00 1A 42 C6 1D BA 40 00 3C 00 00 A2 53
-C6 1D 2F 83 8F 4A 00 00 E3 3F 5A 5C 05 55 4E 54
-49 4C 3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89
-0A 11 3A 90 00 FE 10 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 1D 30 4D 3A 5A 05 41 47 41 49 4E
-87 12 EE 5B A2 5C 2A 44 00 00 05 57 48 49 4C 45
-87 12 48 5C 78 44 2A 44 FE 5B 06 52 45 50 45 41
-54 00 87 12 EE 5B A2 5C 60 5C 2A 44 FE 5C 3D 41
-2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43 00 00 CA 23
-98 42 C6 1D 00 00 30 4D CA 5A 03 42 57 31 84 12
-FC 5C E0 1D 1A 5D 03 42 57 32 84 12 FC 5C E2 1D
-26 5D 03 42 57 33 84 12 FC 5C E4 1D 3E 5D 3D 41
-1A 42 C6 1D 2E 4E 28 4E 08 93 8E 43 00 00 8B 23
-BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D
-00 00 03 46 57 31 84 12 3C 5D E6 1D 62 5D 03 46
-57 32 84 12 3C 5D E8 1D 6E 5D 03 46 57 33 84 12
-3C 5D EA 1D 3E 90 00 30 07 24 3E E0 00 04 3E B0
-00 10 02 24 3E E0 00 08 30 4D 7A 5D 04 47 4F 54
-4F 00 87 12 EE 5B BE 4D CC 4B 2A 44 00 00 05 3F
-47 4F 54 4F 87 12 84 5D BE 4D CC 4B 2A 44 00 00
-03 4A 4D 50 87 12 BE 4D D0 5C 2A 44 AE 5D 04 3F
-4A 4D 50 00 87 12 84 5D BE 4D 78 44 A2 5C 2A 44
-87 12 B0 45 D2 56 E8 5D 69 4E 3E 4F 3C 4F 2C 4C
-1B 42 C6 1D A2 53 C6 1D 79 90 52 00 0A 20 B0 12
-AC 57 5E 0E 5E 0E 0E DC 8B 4E 00 00 0E 4B 3D 41
-30 4D 79 90 23 00 0D 20 3C C0 40 00 92 53 C4 1D
-A2 53 C6 1D B0 12 34 57 BB 4F 02 00 3E F0 0F 00
-E8 3F 79 90 26 00 03 20 3C E0 E0 00 EF 3F 3C C0
-F0 00 79 90 40 00 12 20 92 53 C4 1D B0 12 AC 57
-D8 23 3C D0 10 00 3E 40 2B 00 B0 12 AC 57 92 92
-C0 1D C4 1D CE 27 92 53 C4 1D CB 3F 3C D0 30 00
-A2 53 C6 1D 3E 40 28 00 B0 12 34 57 BB 4F 02 00
-3E 40 29 00 EA 3F 87 12 B0 45 D2 56 8E 5E 3B 4F
-2C 4B 69 4E 7E 40 20 00 79 90 52 00 03 20 B0 12
-AC 57 B1 3F 3C C0 F0 00 A2 53 C6 1D 79 90 26 00
-09 20 3C D0 60 00 92 53 C4 1D B0 12 34 57 BB 4F
-02 00 A1 3F 3C D0 70 00 3E 40 28 00 B0 12 34 57
-BB 4F 02 00 3E 40 29 00 E2 3F 34 44 2C 00 E0 5D
-86 5E 62 44 2A 44 10 59 04 4D 4F 56 41 00 84 12
-DA 5E C0 00 32 5D 04 43 4D 50 41 00 84 12 DA 5E
-D0 00 CA 5C 04 41 44 44 41 00 84 12 DA 5E E0 00
-EA 5C 04 53 55 42 41 00 84 12 DA 5E F0 00 F6 5E
-05 43 41 4C 4C 41 87 12 B0 45 D2 56 2E 5F 1B 42
-C6 1D A2 53 C6 1D 6E 4E 3C 40 34 01 7E 90 52 00
-0B 20 7E 40 20 00 B0 12 AC 57 5C 0E 0C DE 8B 4C
-00 00 3E 4F 3D 41 30 4D 2C 53 7E 90 40 00 0B 20
-92 53 C4 1D 7E 40 20 00 B0 12 AC 57 EE 23 1C 53
-3E 40 2B 00 E8 3F A2 53 C6 1D 7E 90 23 00 09 20
-3C 40 3B 01 92 53 C4 1D B0 12 34 57 BB 4F 02 00
-DC 3F 7E 90 26 00 02 20 2C 53 F4 3F 7E 40 28 00
-1C 83 B0 12 34 57 BB 4F 02 00 3E 40 29 00 CB 3F
-87 12 B0 45 D2 56 B8 5F 69 4E 3E 4F 3C 40 00 18
-79 90 52 00 05 20 B0 12 AC 57 0E 4C 3D 41 30 4D
-82 43 EE 1D 79 90 23 00 0B 20 92 53 C4 1D B0 12
-34 57 2F 53 3E F0 0F 00 5E 0A 5E 0E 0C DE ED 3F
-79 90 26 00 F2 27 79 90 40 00 12 20 92 53 C4 1D
-B0 12 AC 57 E2 23 3E 40 2B 00 92 53 C4 1D B0 12
-AC 57 92 92 C0 1D C4 1D D8 27 92 53 C4 1D D5 3F
-3E 40 28 00 B0 12 34 57 8F 4E 00 00 3E 40 29 00
-B0 12 AC 57 3E 4F 3E F0 0F 00 0C DE EA 3F 87 12
-B0 45 D2 56 46 60 3C 4F 69 4E 3E 40 20 00 79 90
-52 00 BB 27 82 43 EE 1D 79 90 26 00 08 20 92 53
-C4 1D B0 12 34 57 2F 53 3E F0 0F 00 BF 3F 3E 40
-28 00 B0 12 34 57 F7 3F 1B 42 C6 1D A2 53 C6 1D
-0C 4E 3E 4F 1C D2 EE 1D 82 43 EE 1D 3C DE 8B 4C
-00 00 B2 41 C4 1D 30 4D 34 44 C4 1D F2 44 B0 44
-34 44 2C 00 B0 5F 3E 60 78 60 24 47 F0 58 E8 5E
-04 4D 4F 56 58 00 84 12 98 60 40 00 00 40 B0 60
-06 4D 4F 56 58 2E 41 00 84 12 98 60 00 00 40 40
-C0 60 06 4D 4F 56 58 2E 42 00 84 12 98 60 40 00
-40 40 04 5F 04 41 44 44 58 00 84 12 98 60 40 00
-00 50 E4 60 06 41 44 44 58 2E 41 00 84 12 98 60
-00 00 40 50 F4 60 06 41 44 44 58 2E 42 00 84 12
-98 60 40 00 40 50 06 61 05 41 44 44 43 58 84 12
-98 60 40 00 00 60 18 61 07 41 44 44 43 58 2E 41
-84 12 98 60 00 00 40 60 28 61 07 41 44 44 43 58
-2E 42 84 12 98 60 40 00 40 60 12 5F 05 53 55 42
-43 58 84 12 98 60 40 00 00 70 4C 61 07 53 55 42
-43 58 2E 41 84 12 98 60 00 00 40 70 5C 61 07 53
-55 42 43 58 2E 42 84 12 98 60 40 00 40 70 6E 61
-04 53 55 42 58 00 84 12 98 60 40 00 00 80 80 61
-06 53 55 42 58 2E 41 00 84 12 98 60 00 00 40 80
-90 61 06 53 55 42 58 2E 42 00 84 12 98 60 40 00
-40 80 20 5F 04 43 4D 50 58 00 84 12 98 60 40 00
-00 90 B4 61 06 43 4D 50 58 2E 41 00 84 12 98 60
-00 00 40 90 C4 61 06 43 4D 50 58 2E 42 00 84 12
-98 60 40 00 40 90 7E 5C 05 44 41 44 44 58 84 12
-98 60 40 00 00 A0 E8 61 07 44 41 44 44 58 2E 41
-84 12 98 60 00 00 40 A0 F8 61 07 44 41 44 44 58
-2E 42 84 12 98 60 40 00 40 A0 D6 61 04 42 49 54
-58 00 84 12 98 60 40 00 00 B0 1C 62 06 42 49 54
-58 2E 41 00 84 12 98 60 00 00 40 B0 2C 62 06 42
-49 54 58 2E 42 00 84 12 98 60 40 00 40 B0 3E 62
-04 42 49 43 58 00 84 12 98 60 40 00 00 C0 50 62
-06 42 49 43 58 2E 41 00 84 12 98 60 00 00 40 C0
-60 62 06 42 49 43 58 2E 42 00 84 12 98 60 40 00
-40 C0 72 62 04 42 49 53 58 00 84 12 98 60 40 00
-00 D0 84 62 06 42 49 53 58 2E 41 00 84 12 98 60
-00 00 40 D0 94 62 06 42 49 53 58 2E 42 00 84 12
-98 60 40 00 40 D0 20 5A 04 58 4F 52 58 00 84 12
-98 60 40 00 00 E0 B8 62 06 58 4F 52 58 2E 41 00
-84 12 98 60 00 00 40 E0 C8 62 06 58 4F 52 58 2E
-42 00 84 12 98 60 40 00 40 E0 3A 61 04 41 4E 44
-58 00 84 12 98 60 40 00 00 F0 EC 62 06 41 4E 44
-58 2E 41 00 84 12 98 60 00 00 40 F0 FC 62 06 41
-4E 44 58 2E 42 00 84 12 98 60 40 00 40 F0 34 44
-C4 1D F2 44 B0 44 B0 45 B0 5F 78 60 24 47 46 5A
-A2 61 04 52 52 43 58 00 84 12 1E 63 40 00 00 10
-32 63 06 52 52 43 58 2E 41 00 84 12 1E 63 00 00
-40 10 42 63 06 52 52 43 58 2E 42 00 84 12 1E 63
-40 00 40 10 54 63 04 52 52 55 58 00 84 12 1E 63
-40 01 00 10 66 63 06 52 52 55 58 2E 41 00 84 12
-1E 63 00 01 40 10 76 63 06 52 52 55 58 2E 42 00
-84 12 1E 63 40 01 40 10 88 63 05 53 57 50 42 58
-84 12 1E 63 40 00 80 10 9A 63 07 53 57 50 42 58
-2E 41 84 12 1E 63 00 00 80 10 AA 63 04 52 52 41
-58 00 84 12 1E 63 40 00 00 11 BC 63 06 52 52 41
-58 2E 41 00 84 12 1E 63 00 00 40 11 CC 63 06 52
-52 41 58 2E 42 00 84 12 1E 63 40 00 40 11 DE 63
-04 53 58 54 58 00 84 12 1E 63 40 00 80 11 F0 63
-06 53 58 54 58 2E 41 00 84 12 1E 63 00 00 80 11
-3A 5C 05 50 55 53 48 58 84 12 1E 63 40 00 00 12
-12 64 07 50 55 53 48 58 2E 41 84 12 1E 63 00 00
-40 12 22 64 07 50 55 53 48 58 2E 42 84 12 1E 63
-40 00 40 12 00 64 03 52 50 54 87 12 B0 45 D2 56
-52 64 29 4E 7E 40 20 00 79 90 52 00 06 20 B0 12
-AC 57 03 24 3E D0 80 00 04 3C B0 12 34 57 3E F0
-0F 00 82 4E EE 1D 3E 4F 3D 41 30 4D
+44 52 B2 40 88 5A 5C 01 B2 40 FE FF 02 02 B2 D3
+06 02 B2 43 26 02 B2 43 22 02 D2 D3 24 02 B2 43
+42 02 B2 43 46 02 B2 43 62 02 B2 43 66 02 B2 40
+7F FF 82 02 B2 43 86 02 F2 43 22 03 F2 43 26 03
+F2 40 A5 00 41 01 F2 40 10 00 40 01 D2 43 41 01
+F2 40 A5 00 61 01 B2 40 48 00 62 01 82 43 66 01
+39 40 00 01 B2 40 33 00 64 01 D2 43 61 01 92 D2
+9E 01 08 18 38 40 59 14 18 83 FE 23 19 83 FA 23
+B2 42 B0 01 F2 D0 10 00 2A 03 F2 C0 40 00 A2 04
+39 40 00 08 29 83 89 43 00 1C FC 23 39 40 3A 00
+29 83 B9 40 A2 52 C6 FF FB 23 B2 40 26 47 E4 FF
+B2 40 81 00 E0 05 92 42 02 18 E6 05 92 42 04 18
+E8 05 92 C3 E0 05 92 D3 FA 05 3F 40 80 1C 31 40
+E0 1C 30 12 0A 52 33 3F 8E 52 07 43 4F 4D 50 41
+52 45 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C 0C 24
+1B 83 07 30 1C 83 07 30 19 53 F9 98 FF FF F5 27
+02 2C 3E 43 30 4D 1E 43 30 4D B2 4D 86 5B 54 48
+45 4E 5D 00 30 4D AC 53 86 5B 45 4C 53 45 5D 00
+87 12 14 48 00 00 C6 44 42 4B 80 48 24 4B 34 44
+40 46 22 54 44 44 1E 48 06 5B 54 48 45 4E 5D 00
+82 53 4A 46 F2 53 F8 47 D0 44 58 44 4A 46 C8 53
+2A 44 44 44 1E 48 06 5B 45 4C 53 45 5D 00 82 53
+4A 46 10 54 F8 47 D0 44 58 44 4A 46 C6 53 2A 44
+1E 48 04 5B 49 46 5D 00 82 53 4A 46 C8 53 3C 46
+C6 53 F8 47 1E 48 05 0D 0A 6B 6F 20 D6 47 8C 47
+32 4B 3C 46 C8 53 B8 53 84 5B 49 46 5D 00 0E 93
+3E 4F BE 27 30 4D 38 54 89 5B 44 45 46 49 4E 45
+44 5D 87 12 42 4B 80 48 EE 48 6A 44 2A 44 48 54
+8B 5B 55 4E 44 45 46 49 4E 45 44 5D 87 12 42 4B
+80 48 EE 48 6A 44 00 45 2A 44 7C 54 3D 41 B2 4E
+0E 18 A2 4E 0C 18 3E 4F 30 40 5A 51 4C 50 06 4D
+41 52 4B 45 52 00 B0 12 B8 4D BA 40 84 12 FC FF
+BA 40 7A 54 FE FF 9A 42 C8 1D 00 00 28 83 8A 48
+02 00 A2 52 C6 1D 30 40 00 4E 1C 15 B0 12 2A 44
+80 48 EE 48 4A 46 D0 54 AA 49 40 46 CE 4C EA 54
+D2 54 39 4E 39 80 86 12 08 24 19 53 02 20 2E 4E
+04 3C 2E 53 19 53 01 24 2E 82 1B 17 30 41 32 B0
+00 02 01 24 3E 4F 30 41 3E 40 28 00 B0 12 BA 54
+B0 12 EE 54 19 42 C6 1D A2 53 C6 1D 89 4E 00 00
+3E 40 29 00 1C 15 12 12 C4 1D 92 53 C4 1D B0 12
+2A 44 80 48 AA 49 40 46 36 55 2C 55 21 53 3E 90
+10 00 81 2D DA 2B 38 55 B2 41 C4 1D D6 3F 87 12
+42 4B 74 48 46 55 0C 43 1B 42 C6 1D A2 53 C6 1D
+6A 4E 3E 4F 7A 90 23 00 29 20 92 53 C4 1D B0 12
+BA 54 B0 12 EE 54 3C 40 00 03 0E 93 1C 24 3C 40
+10 03 1E 93 18 24 3C 40 20 03 2E 93 14 24 3C 40
+20 02 2E 92 10 24 3C 40 30 02 3E 92 0C 24 3C 40
+30 03 3E 93 08 24 3C 40 30 00 19 42 C6 1D A2 53
+C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00
+09 20 3C 40 10 02 92 53 C4 1D B0 12 BA 54 B0 12
+EE 54 EB 3F 7A 90 40 00 16 20 3C 40 20 00 92 53
+C4 1D B0 12 14 55 0C 20 3C 50 10 00 3E 40 2B 00
+B0 12 14 55 92 92 C0 1D C4 1D 02 24 92 53 C4 1D
+8E 10 0C 5E D8 3F B0 12 14 55 FA 23 3C 50 10 00
+B0 12 F8 54 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D
+87 12 42 4B 74 48 18 56 FE 90 26 00 00 00 3E 40
+20 00 03 20 3C 50 82 00 C6 3F B0 12 14 55 E1 23
+3C 50 80 00 B0 12 F8 54 DC 3F D6 46 04 52 45 54
+49 00 87 12 14 48 00 13 B0 4A 2A 44 14 48 2C 00
+3E 55 10 56 56 56 09 4B 2E 4E 0E DC A2 3F 00 4F
+03 4D 4F 56 84 12 4C 56 00 40 60 56 05 4D 4F 56
+2E 42 84 12 4C 56 40 40 00 00 03 41 44 44 84 12
+4C 56 00 50 7A 56 05 41 44 44 2E 42 84 12 4C 56
+40 50 86 56 04 41 44 44 43 00 84 12 4C 56 00 60
+94 56 06 41 44 44 43 2E 42 00 84 12 4C 56 40 60
+3C 56 04 53 55 42 43 00 84 12 4C 56 00 70 B2 56
+06 53 55 42 43 2E 42 00 84 12 4C 56 40 70 C0 56
+03 53 55 42 84 12 4C 56 00 80 D0 56 05 53 55 42
+2E 42 84 12 4C 56 40 80 E2 4E 03 43 4D 50 84 12
+4C 56 00 90 EA 56 05 43 4D 50 2E 42 84 12 4C 56
+40 90 D0 4E 04 44 41 44 44 00 84 12 4C 56 00 A0
+04 57 06 44 41 44 44 2E 42 00 84 12 4C 56 40 A0
+F6 56 03 42 49 54 84 12 4C 56 00 B0 22 57 05 42
+49 54 2E 42 84 12 4C 56 40 B0 2E 57 03 42 49 43
+84 12 4C 56 00 C0 3C 57 05 42 49 43 2E 42 84 12
+4C 56 40 C0 48 57 03 42 49 53 84 12 4C 56 00 D0
+56 57 05 42 49 53 2E 42 84 12 4C 56 40 D0 00 00
+03 58 4F 52 84 12 4C 56 00 E0 70 57 05 58 4F 52
+2E 42 84 12 4C 56 40 E0 A2 56 03 41 4E 44 84 12
+4C 56 00 F0 8A 57 05 41 4E 44 2E 42 84 12 4C 56
+40 F0 42 4B 3E 55 A8 57 0A 4C 3C F0 70 00 8A 10
+3A F0 0F 00 0C DA 4F 3F DC 56 03 52 52 43 84 12
+A2 57 00 10 BA 57 05 52 52 43 2E 42 84 12 A2 57
+40 10 C6 57 04 53 57 50 42 00 84 12 A2 57 80 10
+D4 57 03 52 52 41 84 12 A2 57 00 11 E2 57 05 52
+52 41 2E 42 84 12 A2 57 40 11 EE 57 03 53 58 54
+84 12 A2 57 80 11 00 00 04 50 55 53 48 00 84 12
+A2 57 00 12 08 58 06 50 55 53 48 2E 42 00 84 12
+A2 57 40 12 62 57 04 43 41 4C 4C 00 84 12 A2 57
+80 12 1A 53 0E 4A 87 12 34 46 1E 48 0D 6F 75 74
+20 6F 66 20 62 6F 75 6E 64 73 4C 4C 42 4B 74 48
+52 58 92 53 C4 1D 3E 40 2C 00 B0 12 2A 44 80 48
+AA 49 40 46 CE 4C 06 56 6A 58 0A 4E 3E 4F 1A 83
+E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F
+8A 10 5A 06 8F 3F FC 57 06 52 52 43 4D 2E 41 00
+84 12 4C 58 40 00 98 58 04 52 52 43 4D 00 84 12
+4C 58 50 00 A8 58 06 52 52 41 4D 2E 41 00 84 12
+4C 58 40 01 B6 58 04 52 52 41 4D 00 84 12 4C 58
+50 01 C6 58 06 52 4C 41 4D 2E 41 00 84 12 4C 58
+40 02 D4 58 04 52 4C 41 4D 00 84 12 4C 58 50 02
+E4 58 06 52 52 55 4D 2E 41 00 84 12 4C 58 40 03
+F2 58 04 52 52 55 4D 00 84 12 4C 58 50 03 16 58
+07 50 55 53 48 4D 2E 41 84 12 4C 58 00 14 10 59
+05 50 55 53 48 4D 84 12 4C 58 00 15 20 59 06 50
+4F 50 4D 2E 41 00 84 12 4C 58 00 16 2E 59 04 50
+4F 50 4D 00 84 12 4C 58 00 17 02 59 03 53 3E 3D
+85 12 00 38 4C 59 02 53 3C 00 85 12 00 34 3E 59
+03 30 3E 3D 85 12 00 30 60 59 02 30 3C 00 85 12
+00 30 00 00 02 55 3C 00 85 12 00 2C 74 59 03 55
+3E 3D 85 12 00 28 6A 59 03 30 3C 3E 85 12 00 24
+88 59 02 30 3D 00 85 12 00 20 00 00 02 49 46 00
+1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 0E 4A 30 4D
+7E 59 04 54 48 45 4E 00 1A 42 C6 1D 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 33 2F 88 DA
+00 00 30 4D 12 57 04 45 4C 53 45 00 1A 42 C6 1D
+BA 40 00 3C 00 00 A2 53 C6 1D 2F 83 8F 4A 00 00
+E3 3F B2 59 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C6 1D 2A 83 0A 89 0A 11 3A 90 00 FE 12 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D 30 4D
+96 57 05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 05 57 48 49 4C 45 87 12 A0 59 76 44 2A 44
+56 59 06 52 45 50 45 41 54 00 87 12 28 5A B8 59
+2A 44 54 5A 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D
+CD 2F 98 42 C6 1D 00 00 30 4D 26 58 03 42 57 31
+84 12 52 5A 00 00 6C 5A 03 42 57 32 84 12 52 5A
+00 00 78 5A 03 42 57 33 84 12 52 5A 00 00 90 5A
+3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D 90 2B BA 4F
+00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00
+03 46 57 31 84 12 8E 5A 00 00 B0 5A 03 46 57 32
+84 12 8E 5A 00 00 BC 5A 03 46 57 33 84 12 8E 5A
+00 00 00 00 05 3F 47 4F 54 4F 3E 90 00 30 07 24
+3E E0 00 04 3E B0 00 10 02 24 3E E0 00 08 87 12
+C0 4C DA 4A 2A 44 C8 5A 04 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C F2 3F 87 12 42 4B 74 48
+12 5B 69 4E 3E 4F 3C 4F 2C 4C 1B 42 C6 1D A2 53
+C6 1D 79 90 52 00 0A 20 B0 12 14 55 5E 0E 5E 0E
+0E DC 8B 4E 00 00 0E 4B 3D 41 30 4D 79 90 23 00
+0D 20 3C C0 40 00 92 53 C4 1D A2 53 C6 1D B0 12
+BA 54 BB 4F 02 00 3E F0 0F 00 E8 3F 79 90 26 00
+03 20 3C E0 E0 00 EF 3F 3C C0 F0 00 79 90 40 00
+12 20 92 53 C4 1D B0 12 14 55 D8 23 3C D0 10 00
+3E 40 2B 00 B0 12 14 55 92 92 C0 1D C4 1D CE 27
+92 53 C4 1D CB 3F 3C D0 30 00 A2 53 C6 1D 3E 40
+28 00 B0 12 BA 54 BB 4F 02 00 3E 40 29 00 EA 3F
+87 12 42 4B 74 48 B8 5B 3B 4F 2C 4B 69 4E 7E 40
+20 00 79 90 52 00 03 20 B0 12 14 55 B1 3F 3C C0
+F0 00 A2 53 C6 1D 79 90 26 00 09 20 3C D0 60 00
+92 53 C4 1D B0 12 BA 54 BB 4F 02 00 A1 3F 3C D0
+70 00 3E 40 28 00 B0 12 BA 54 BB 4F 02 00 3E 40
+29 00 E2 3F 14 48 2C 00 0A 5B B0 5B 66 44 2A 44
+6C 56 04 4D 4F 56 41 00 84 12 04 5C C0 00 84 5A
+04 43 4D 50 41 00 84 12 04 5C D0 00 22 5A 04 41
+44 44 41 00 84 12 04 5C E0 00 42 5A 04 53 55 42
+41 00 84 12 04 5C F0 00 20 5C 05 43 41 4C 4C 41
+87 12 42 4B 74 48 58 5C 1B 42 C6 1D A2 53 C6 1D
+6E 4E 3C 40 34 01 7E 90 52 00 0B 20 7E 40 20 00
+B0 12 14 55 5C 0E 0C DE 8B 4C 00 00 3E 4F 3D 41
+30 4D 2C 53 7E 90 40 00 0B 20 92 53 C4 1D 7E 40
+20 00 B0 12 14 55 EE 23 1C 53 3E 40 2B 00 E8 3F
+A2 53 C6 1D 7E 90 23 00 09 20 3C 40 3B 01 92 53
+C4 1D B0 12 BA 54 BB 4F 02 00 DC 3F 7E 90 26 00
+02 20 2C 53 F4 3F 7E 40 28 00 1C 83 B0 12 BA 54
+BB 4F 02 00 3E 40 29 00 CB 3F 87 12 42 4B 74 48
+E2 5C 69 4E 3E 4F 3C 40 00 18 79 90 52 00 05 20
+B0 12 14 55 0E 4C 3D 41 30 4D 82 43 6E 61 79 90
+23 00 0B 20 92 53 C4 1D B0 12 BA 54 2F 53 3E F0
+0F 00 5E 0A 5E 0E 0C DE ED 3F 79 90 26 00 F2 27
+79 90 40 00 12 20 92 53 C4 1D B0 12 14 55 E2 23
+3E 40 2B 00 92 53 C4 1D B0 12 14 55 92 92 C0 1D
+C4 1D D8 27 92 53 C4 1D D5 3F 3E 40 28 00 B0 12
+BA 54 8F 4E 00 00 3E 40 29 00 B0 12 14 55 3E 4F
+3E F0 0F 00 0C DE EA 3F 87 12 42 4B 74 48 70 5D
+3C 4F 69 4E 3E 40 20 00 79 90 52 00 BB 27 82 43
+6E 61 79 90 26 00 08 20 92 53 C4 1D B0 12 BA 54
+2F 53 3E F0 0F 00 BF 3F 3E 40 28 00 B0 12 BA 54
+F7 3F 1B 42 C6 1D A2 53 C6 1D 0C 4E 3E 4F 1C D2
+6E 61 82 43 6E 61 3C DE 8B 4C 00 00 B2 41 C4 1D
+30 4D 14 48 C4 1D EA 44 86 44 14 48 2C 00 DA 5C
+68 5D A2 5D 3C 46 4C 56 12 5C 04 4D 4F 56 58 00
+84 12 C2 5D 40 00 00 40 DA 5D 06 4D 4F 56 58 2E
+41 00 84 12 C2 5D 00 00 40 40 EA 5D 06 4D 4F 56
+58 2E 42 00 84 12 C2 5D 40 00 40 40 2E 5C 04 41
+44 44 58 00 84 12 C2 5D 40 00 00 50 0E 5E 06 41
+44 44 58 2E 41 00 84 12 C2 5D 00 00 40 50 1E 5E
+06 41 44 44 58 2E 42 00 84 12 C2 5D 40 00 40 50
+30 5E 05 41 44 44 43 58 84 12 C2 5D 40 00 00 60
+42 5E 07 41 44 44 43 58 2E 41 84 12 C2 5D 00 00
+40 60 52 5E 07 41 44 44 43 58 2E 42 84 12 C2 5D
+40 00 40 60 3C 5C 05 53 55 42 43 58 84 12 C2 5D
+40 00 00 70 76 5E 07 53 55 42 43 58 2E 41 84 12
+C2 5D 00 00 40 70 86 5E 07 53 55 42 43 58 2E 42
+84 12 C2 5D 40 00 40 70 98 5E 04 53 55 42 58 00
+84 12 C2 5D 40 00 00 80 AA 5E 06 53 55 42 58 2E
+41 00 84 12 C2 5D 00 00 40 80 BA 5E 06 53 55 42
+58 2E 42 00 84 12 C2 5D 40 00 40 80 4A 5C 04 43
+4D 50 58 00 84 12 C2 5D 40 00 00 90 DE 5E 06 43
+4D 50 58 2E 41 00 84 12 C2 5D 00 00 40 90 EE 5E
+06 43 4D 50 58 2E 42 00 84 12 C2 5D 40 00 40 90
+D6 59 05 44 41 44 44 58 84 12 C2 5D 40 00 00 A0
+12 5F 07 44 41 44 44 58 2E 41 84 12 C2 5D 00 00
+40 A0 22 5F 07 44 41 44 44 58 2E 42 84 12 C2 5D
+40 00 40 A0 00 5F 04 42 49 54 58 00 84 12 C2 5D
+40 00 00 B0 46 5F 06 42 49 54 58 2E 41 00 84 12
+C2 5D 00 00 40 B0 56 5F 06 42 49 54 58 2E 42 00
+84 12 C2 5D 40 00 40 B0 68 5F 04 42 49 43 58 00
+84 12 C2 5D 40 00 00 C0 7A 5F 06 42 49 43 58 2E
+41 00 84 12 C2 5D 00 00 40 C0 8A 5F 06 42 49 43
+58 2E 42 00 84 12 C2 5D 40 00 40 C0 9C 5F 04 42
+49 53 58 00 84 12 C2 5D 40 00 00 D0 AE 5F 06 42
+49 53 58 2E 41 00 84 12 C2 5D 00 00 40 D0 BE 5F
+06 42 49 53 58 2E 42 00 84 12 C2 5D 40 00 40 D0
+7C 57 04 58 4F 52 58 00 84 12 C2 5D 40 00 00 E0
+E2 5F 06 58 4F 52 58 2E 41 00 84 12 C2 5D 00 00
+40 E0 F2 5F 06 58 4F 52 58 2E 42 00 84 12 C2 5D
+40 00 40 E0 64 5E 04 41 4E 44 58 00 84 12 C2 5D
+40 00 00 F0 16 60 06 41 4E 44 58 2E 41 00 84 12
+C2 5D 00 00 40 F0 26 60 06 41 4E 44 58 2E 42 00
+84 12 C2 5D 40 00 40 F0 14 48 C4 1D EA 44 86 44
+42 4B DA 5C A2 5D 3C 46 A2 57 CC 5E 04 52 52 43
+58 00 84 12 48 60 40 00 00 10 5C 60 06 52 52 43
+58 2E 41 00 84 12 48 60 00 00 40 10 6C 60 06 52
+52 43 58 2E 42 00 84 12 48 60 40 00 40 10 7E 60
+04 52 52 55 58 00 84 12 48 60 40 01 00 10 90 60
+06 52 52 55 58 2E 41 00 84 12 48 60 00 01 40 10
+A0 60 06 52 52 55 58 2E 42 00 84 12 48 60 40 01
+40 10 B2 60 05 53 57 50 42 58 84 12 48 60 40 00
+80 10 C4 60 07 53 57 50 42 58 2E 41 84 12 48 60
+00 00 80 10 D4 60 04 52 52 41 58 00 84 12 48 60
+40 00 00 11 E6 60 06 52 52 41 58 2E 41 00 84 12
+48 60 00 00 40 11 F6 60 06 52 52 41 58 2E 42 00
+84 12 48 60 40 00 40 11 08 61 04 53 58 54 58 00
+84 12 48 60 40 00 80 11 1A 61 06 53 58 54 58 2E
+41 00 84 12 48 60 00 00 80 11 92 59 05 50 55 53
+48 58 84 12 48 60 40 00 00 12 3C 61 07 50 55 53
+48 58 2E 41 84 12 48 60 00 00 40 12 4C 61 07 50
+55 53 48 58 2E 42 84 12 48 60 40 00 40 12 00 00
+2A 61 03 52 50 54 87 12 42 4B 74 48 7E 61 29 4E
+7E 40 20 00 79 90 52 00 06 20 B0 12 14 55 03 24
+3E D0 80 00 05 3C B0 12 BA 54 1E 83 3E F0 0F 00
+82 4E 6E 61 3E 4F 3D 41 30 4D
 @FFFE
-F0 55
+A2 52
 q
index 25663be..2eecb75 100644 (file)
 @1800
-10 00 08 00 00 D6 E8 03 05 00 18 00 6A 64 98 52
-2C 01 7F B0 00 48 12 48
+10 00 08 00 00 D6 E8 03 05 00 18 00 98 61 D4 50
+2D 01 6F B0 B6 46 C8 46
 @4400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 44
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 44 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 44 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 44 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 44 02 3E 52 00
-0E 12 3E 4F 30 4D 96 44 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 44 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 44 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 44 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 45 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 44 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 45 02 31 2D 00
-1E 83 30 4D D8 44 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 45
-02 30 3D 00 1E 83 0E 7E 30 4D 60 45 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 45 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 44 01 3E 3E 8F F4 3B EB 37 0E 45 02 42 4C 00
-85 12 20 00 AC 45 04 42 41 53 45 00 85 12 DC 1D
-C8 44 05 53 54 41 54 45 85 12 BE 1D 96 45 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 45 06 55 4D 2F
-4D 4F 44 00 30 12 62 44 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 44 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 45
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 45 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 46
-02 23 53 00 87 12 32 46 6A 46 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 46 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 45 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 45
-02 44 2E 00 87 12 D2 45 44 44 B0 44 4C 45 64 46
-BC 44 A2 46 7E 46 22 49 EA 48 2A 44 DC 45 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 44
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 46 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 44
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A 46
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 46 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 46 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 45 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 47 03 4B 45 59 30 40 A0 47
-18 42 EC 05 2F 83 8F 4E 00 00 B0 12 00 48 92 B3
-FC 05 FD 27 1E 42 EC 05 B0 12 12 48 30 4D 00 47
-06 41 43 43 45 50 54 00 30 40 CC 47 3C 40 6E 48
-3B 40 38 48 2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00
-3C 40 20 00 3D 40 62 48 92 B3 FC 05 05 24 18 42
-EC 05 38 90 0A 00 04 20 21 53 39 40 26 48 4D 15
-A2 B3 FC 05 FD 27 B2 40 11 00 EE 05 D2 C3 22 02
-30 41 B2 40 13 00 EE 05 D2 D3 22 02 30 41 00 00
-05 53 4C 45 45 50 30 40 2A 48 12 D2 0A 18 FB 3F
-21 52 3A 17 58 42 EC 05 48 9C 08 2C 48 9B E9 27
-78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24
-CE 48 00 00 1E 53 A2 B3 FC 05 FD 27 82 48 EE 05
-30 4D 64 48 2D 83 92 B3 FC 05 E4 23 FC 27 82 93
-DE 1D 02 24 92 53 DE 1D 3E 8F 3D 41 B2 40 18 00
-0A 18 30 4D B0 46 04 45 4D 49 54 00 30 40 90 48
-08 4E 3E 4F E0 3F 10 47 03 43 49 42 85 12 3C 1D
-3F 80 06 00 8F 4E 04 00 3E 40 54 00 9F 42 9E 48
-00 00 AF 4F 02 00 88 3F 86 48 04 45 43 48 4F 00
-B2 40 82 48 5C 48 82 43 DE 1D 30 4D E0 46 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 5C 48 92 43 DE 1D
-30 4D 9C 46 05 53 50 41 43 45 2F 83 8F 4E 00 00
-3E 40 20 00 CB 3F E4 48 06 53 50 41 43 45 53 00
-0E 93 09 24 0D 12 3D 40 0C 49 EF 3F 0E 49 2D 83
-1E 83 EB 23 3D 41 3E 4F 30 4D 66 47 04 54 59 50
-45 00 0E 93 0F 24 1E 15 3D 40 38 49 28 4F 7E 48
-8F 48 00 00 2F 83 AA 3F 3A 49 2D 83 91 83 02 00
-F5 23 1D 17 2F 53 3E 4F 30 4D 98 48 02 43 52 00
-30 40 54 49 87 12 60 49 02 0D 0A 00 22 49 2A 44
-2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
-0D 63 30 4D F8 48 82 53 22 00 82 43 B4 1D 87 12
-34 44 60 49 D6 4B 34 44 22 00 C4 49 8E 49 3D 41
-B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D 3E 4F
-92 B3 C6 1D A2 63 C6 1D 30 4D CE 48 82 2E 22 00
-87 12 7A 49 34 44 22 49 D6 4B 2A 44 00 00 04 57
-4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A 3A 5C
-28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40 60 00
-C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24 18 53
-4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D F0 3F
-1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E CE 48
-00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83 0C 4E
-65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93 1E 24
-58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E FE FF
-0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23 0A 4C
-FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
-0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C 00 00
-35 40 0E 44 34 40 00 44 30 4D A2 45 07 3E 4E 55
-4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42 DC 1D
-6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80 07 00
-7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49 D0 04
-82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42 E6 04
-09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00 8F 48
-02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43 2D 15
-3D 40 1E 4B 09 43 08 43 3F 82 8F 4E 06 00 0C 4E
-7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43 02 00
-E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53 04 24
-3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F 20 4B
-2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02 7A 90
-F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43 8F 49
-02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00 79 90
-0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28 09 9B
-08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 45 2A 17
-E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A 4E 93
-2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02 3F 50
-06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00 BF 4F
-00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3 00 00
-9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20 2F 53
-30 4D BA 48 07 45 58 45 43 55 54 45 0A 4E 3E 4F
-00 4A 26 45 01 2C 1A 42 C6 1D A2 53 C6 1D 8A 4E
-00 00 3E 4F 30 4D D4 4B 87 4C 49 54 45 52 41 4C
-82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D BA 40
-34 44 00 00 8A 4E 02 00 3E 4F 32 B0 00 02 32 C0
-00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49 EB 3F
-30 4D 4C 49 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F C2 1D
-3E 4F 82 43 C4 1D 30 4D 87 12 38 4C B0 45 C4 49
-52 4C 3D 40 5A 4C E2 22 5D 3E 5C 4C 0A 4E 3E 4F
-3D 40 72 4C 39 27 3D 40 4C 4C 1A E2 BE 1D B3 27
-AD 23 74 4C 3E 4F 3D 40 4C 4C BA 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 3E 4F CD 3F
-C4 4B 08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D
-3C 49 3B 49 3A 49 3D 15 B0 12 2A 44 48 4C B0 4C
-B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D
-6C 45 04 51 55 49 54 00 82 43 08 18 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44 50 49
-A0 48 EA 48 48 4C DE 44 70 45 60 49 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 3C 4D 34 44 30 FF
-F2 46 8A 45 60 49 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 3C 4D 24 47 DE 4C C0 47 05 41 42 4F 52 54
-3F 40 80 1C D1 3F 1A 4D 86 41 42 4F 52 54 22 00
-87 12 7A 49 34 44 3C 4D D6 4B 2A 44 8F 93 02 00
-03 20 2F 52 3E 4F 30 4D B0 12 FE 54 B0 12 00 48
-92 C3 FC 05 38 40 AA 0A 39 42 09 59 03 43 19 83
-FD 23 18 83 F9 23 92 B3 FC 05 F2 23 87 12 78 54
-34 44 DE 1D F2 44 C0 48 60 49 04 1B 5B 37 6D 00
-22 49 54 44 28 47 98 4D 50 49 60 49 05 6C 69 6E
-65 3A 22 49 40 45 D2 46 22 49 60 49 04 1B 5B 30
-6D 00 22 49 20 4D 00 00 83 5B 27 5D 87 12 BE 4D
-34 44 34 44 D6 4B D6 4B 2A 44 16 4A 01 27 87 12
-B0 45 C4 49 1C 4A 28 47 CC 4D 2A 44 7C 4C CE 45
-81 5C 92 42 C0 1D C4 1D 30 4D A8 4D 81 5B 82 43
-BE 1D 30 4D D0 4D 01 5D B2 43 BE 1D 30 4D BE 4F
-02 00 3E 4F 30 4D 72 47 82 49 53 00 87 12 C8 45
-F2 44 28 47 10 4E AC 4D 34 44 EE 4D D6 4B 2A 44
-BE 4D EE 4D 2A 44 F8 4D 09 49 4D 4D 45 44 49 41
-54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D 76 49
-87 52 45 43 55 52 53 45 19 42 C6 1D 99 42 BA 1D
-00 00 A2 53 C6 1D 30 4D C2 4C 88 50 4F 53 54 50
-4F 4E 45 00 87 12 B0 45 C4 49 1C 4A 54 44 28 47
-CC 4D 70 45 28 47 74 4E 34 44 34 44 D6 4B D6 4B
-34 44 D6 4B D6 4B 2A 44 DC 4D 81 3B 82 93 BE 1D
-A8 27 87 12 34 44 2A 44 D6 4B 12 4F DE 4D 2A 44
-7A 4E 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E 00 00
-1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02 B0 12
-FE 4E BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D
-82 4F BC 1D 30 4D 92 4E 01 3A 30 12 B2 4E 87 12
-A0 49 B0 45 C4 49 D8 4E 3D 41 08 4E 7A 4E 5A D3
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 44
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 44
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 44
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 44 02 3E 52 00 0E 12 3E 4F 30 4D 70 44 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 44 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 44 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 44
+01 21 BE 4F 00 00 3E 4F 30 4D CC 44 02 30 3D 00
+1E 83 0E 7E 30 4D FC 44 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 45 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 45 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 45 02 23 53 00 87 12 88 45 C0 45
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 45
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 44 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 45 34 44 86 44 D4 44 BA 45
+92 44 F8 45 D4 45 D6 47 42 4B 82 47 2A 44 22 45
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 45 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 46 18 42 EC 05 2F 83 8F 4E
+00 00 B0 12 B6 46 92 B3 FC 05 FD 27 1E 42 EC 05
+B0 12 C8 46 30 4D A2 B3 FC 05 FD 27 B2 40 11 00
+EE 05 D2 C3 22 02 30 41 B2 40 13 00 EE 05 D2 D3
+22 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 46
+B0 12 B6 46 12 D2 0A 18 F9 3F F0 44 06 41 43 43
+45 50 54 00 3C 40 64 47 3B 40 2E 47 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 47
+92 B3 FC 05 05 24 18 42 EC 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 EC 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 FC 05
+FD 27 82 48 EE 05 30 4D 5A 47 2D 83 92 B3 FC 05
+E4 23 FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 44 04 45 4D 49
+54 00 30 40 86 47 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
+02 00 A8 3F 7C 47 04 45 43 48 4F 00 B2 40 82 48
+52 47 82 43 DE 1D 30 4D 32 46 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 47 92 43 DE 1D 30 4D 20 46
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 47
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 47 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 45
+02 43 52 00 30 40 08 48 87 12 1E 48 02 0D 0A 00
+D6 47 2A 44 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 45 82 53 22 00 82 43 B4 1D 87 12 14 48
+1E 48 B0 4A 14 48 22 00 80 48 4C 48 B2 40 20 00
+B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41 3E 4F
+30 4D BA 47 82 2E 22 00 87 12 38 48 14 48 D6 47
+B0 4A 2A 44 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52 C4 1D
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D 3B 40
+60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
+18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D
+F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E
+CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
+0C 4E 65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
+FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
+00 00 35 40 0E 44 34 40 00 44 30 4D 82 44 07 3E
+4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
+DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
+07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
+D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 1D 0C 43 2D 15 3D 40 F4 49 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 49 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 45 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 46 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 44 01 2C
+1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D
+EC 46 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D
+A6 47 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 4A 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
+1A 42 C6 1D A2 52 C6 1D BA 40 14 48 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 48 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
+30 4D 85 12 20 00 87 12 32 4B 42 4B 80 48 50 4B
+3D 40 58 4B CC 22 82 3E 5A 4B 0A 4E 3E 4F 3D 40
+70 4B 23 27 3D 40 4A 4B 1A E2 BE 1D A1 27 B5 23
+72 4B 3E 4F 3D 40 4A 4B B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 4E CB 3F D2 4A
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 44 46 4B AE 4B B2 41
+C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D 85 12
+BE 1D 08 45 04 51 55 49 54 00 82 43 08 18 31 40
+E0 1C B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44
+04 48 8C 47 42 4B 82 47 46 4B A4 44 0C 45 1E 48
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 4C
+14 48 30 FF A0 4A 26 45 1E 48 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 4C 3C 46 E0 4B C2 4A 05 41
+42 4F 52 54 3F 40 80 1C D0 3F 1E 4C 86 41 42 4F
+52 54 22 00 87 12 38 48 14 48 40 4C B0 4A 2A 44
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 CC 51
+B0 12 B6 46 92 C3 FC 05 38 40 AA 0A 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 FC 05 F3 23 87 12
+46 51 14 48 DE 1D EA 44 AC 47 1E 48 04 1B 5B 37
+6D 00 D6 47 58 44 40 46 9A 4C 04 48 1E 48 05 6C
+69 6E 65 3A D6 47 D0 44 24 46 D6 47 1E 48 04 1B
+5B 30 6D 00 D6 47 24 4C 00 00 83 5B 27 5D 87 12
+C0 4C 14 48 14 48 B0 4A B0 4A 2A 44 E8 48 01 27
+87 12 42 4B 80 48 EE 48 40 46 CE 4C 2A 44 7A 4B
+32 45 81 5C 92 42 C0 1D C4 1D 30 4D AA 4C 81 5B
+82 43 BE 1D 30 4D D2 4C 01 5D B2 43 BE 1D 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 4A 82 49 53 00 87 12
+BE 4B EA 44 40 46 12 4D AE 4C 14 48 F0 4C B0 4A
+2A 44 C0 4C F0 4C 2A 44 FA 4C 09 49 4D 4D 45 44
+49 41 54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D
+C4 4B 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 4B
+80 48 EE 48 58 44 40 46 CE 4C 0C 45 40 46 5C 4D
+14 48 14 48 B0 4A B0 4A 14 48 B0 4A B0 4A 2A 44
+DE 4C 81 3B 82 93 BE 1D B5 27 87 12 14 48 2A 44
+B0 4A FA 4D E0 4C 2A 44 62 4D 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 4D 2F 83 8F 4E 00 00 1E 42 C6 1D
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 30 4D
+7A 4D 01 3A 30 12 A0 4D 92 B3 C6 1D A2 63 C6 1D
+87 12 42 4B 80 48 C8 4D 3D 41 08 4E 7A 4E 5A D3
 5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E
-3E 4F BA 40 30 40 00 00 BA 40 C4 4E 02 00 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D
-30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D
-A8 49 FE FF 89 48 00 00 30 4D 87 12 60 49 0F 73
-74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 48 4D
-BE 49 08 56 41 52 49 41 42 4C 45 00 B0 12 CE 4E
-BA 40 86 12 FC FF E4 3F 24 4C 08 43 4F 4E 53 54
-41 4E 54 00 B0 12 CE 4E BA 40 85 12 FC FF 8A 4E
-FE FF 3E 4F D5 3F 5A 4F 06 43 52 45 41 54 45 00
-B0 12 CE 4E BA 40 85 12 FC FF 8A 4A FE FF C8 3F
-92 4C 05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12
-00 00 8A 4D 02 00 3D 41 30 4D 92 4F 05 44 45 46
-45 52 30 12 20 4F 8B 3F 7C 4A 05 3E 42 4F 44 59
-2E 52 30 4D 78 4F 04 43 4F 44 45 00 B0 12 CE 4E
-2A 82 82 4A C6 1D 87 12 C0 4E A2 52 74 52 2A 44
-C6 4F 07 43 4F 44 45 4E 4E 4D 87 12 9A 4E DE 4D
-D0 4F 2A 44 00 00 07 45 4E 44 43 4F 44 45 87 12
-BC 52 12 4F 2A 44 28 4D 03 41 53 4D 92 42 DA 1D
-EC 1D B2 40 78 52 DA 1D D9 3F F6 4F 06 45 4E 44
-41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00 05 43
-4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53
-C6 1D B2 43 BE 1D 30 40 BC 52 00 00 05 4C 4F 32
-48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A 44
-02 00 A2 52 C6 1D ED 3F 18 4E 85 48 49 32 4C 4F
-87 12 F2 46 9A 50 D6 4B DE 4D A2 52 74 52 2A 44
-6A 50 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
-A2 52 C6 1D BE 40 28 47 00 00 2E 53 30 4D AC 4F
-84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40
-24 47 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D 1C 49
-84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D
-E2 4F 85 42 45 47 49 4E 30 40 F2 46 C0 50 85 55
-4E 54 49 4C 39 40 28 47 A2 52 C6 1D 1A 42 C6 1D
-8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D 08 50 85 41
-47 41 49 4E 39 40 24 47 EF 3F 42 4F 85 57 48 49
-4C 45 87 12 86 50 78 44 2A 44 30 4E 86 52 45 50
-45 41 54 00 87 12 04 51 C6 50 2A 44 A0 50 82 44
-4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D
-BE 40 3C 47 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
-00 00 30 4D E8 4B 84 4C 4F 4F 50 00 39 40 5E 47
-A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
-1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A
-00 00 F6 3F 3E 4F 30 4D 98 47 85 2B 4C 4F 4F 50
-39 40 4C 47 E5 3F 56 51 85 4C 45 41 56 45 1A 42
-C6 1D BA 40 6E 47 00 00 BA 40 24 47 02 00 B2 50
-06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C 89 4A
-00 00 30 4D 98 51 04 4D 4F 56 45 00 0A 4E 38 4F
-39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49
-00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 0C 51 0A 56
-4F 43 41 42 55 4C 41 52 59 00 87 12 80 4F 34 44
-10 00 34 44 00 00 3C 47 34 44 00 00 D6 4B 5E 47
-18 52 F2 46 34 44 C8 1D 44 44 F2 44 D6 4B FA 44
-98 4F 34 44 CA 1D FA 44 2A 44 BC 4D 05 46 4F 52
-54 48 84 12 32 52 9C 52 DE 55 DA 52 3C 52 82 50
-8A 51 06 54 CC 52 9C 54 0A 57 DE 50 4E 55 00 00
-DA 53 E6 4D BA 4F 00 00 FE 50 09 41 53 53 45 4D
-42 4C 45 52 84 12 32 52 FC 62 94 62 F8 61 8A 5D
-32 5C AE 5D C0 60 00 00 22 64 34 64 8A 5C C8 5C
-C8 62 00 00 00 00 BC 5D 66 52 6A 52 04 41 4C 53
-4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F
-4A 4E 08 50 52 45 56 49 4F 55 53 00 3A 40 0E 00
-39 40 CC 1D 38 40 CA 1D 8A 3F AC 49 04 4F 4E 4C
-59 00 82 43 CC 1D 30 4D 2E 51 0B 44 45 46 49 4E
-49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D D2 50
-07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53
-F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D
-C8 4E 86 5B 54 48 45 4E 5D 00 30 4D 22 53 86 5B
-45 4C 53 45 5D 00 87 12 34 44 00 00 36 45 B0 45
-C4 49 2A 4C 44 44 28 47 9C 53 8A 44 8A 44 60 49
-06 5B 54 48 45 4E 5D 00 F8 52 32 47 6A 53 44 49
-40 45 54 44 32 47 3E 53 2A 44 8A 44 8A 44 60 49
-06 5B 45 4C 53 45 5D 00 F8 52 32 47 8A 53 44 49
-40 45 54 44 32 47 3C 53 2A 44 60 49 04 5B 49 46
-5D 00 F8 52 32 47 3E 53 24 47 3C 53 44 49 60 49
-05 0D 0A 6B 6F 20 22 49 A0 48 38 4C 24 47 3E 53
-2E 53 84 5B 49 46 5D 00 0E 93 3E 4F BC 27 30 4D
-B2 53 89 5B 44 45 46 49 4E 45 44 5D 87 12 B0 45
-C4 49 1C 4A 6C 44 2A 44 C2 53 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 87 12 B0 45 C4 49 1C 4A 6C 44
-64 45 2A 44 F6 53 3D 41 B2 4E 0E 18 A2 4E 0C 18
-3E 4F 44 3C C6 51 06 4D 41 52 4B 45 52 00 B0 12
-CE 4E BA 40 84 12 FC FF BA 40 F4 53 FE FF 9A 42
-C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40
-18 4F 42 52 D2 52 E6 52 3A 54 3A 4E 82 4A C8 1D
-2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83
-18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23
-2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D B2 52 09 50
-57 52 5F 53 54 41 54 45 84 12 32 54 98 52 6A 64
-1C 51 09 52 53 54 5F 53 54 41 54 45 92 42 0E 18
-7C 54 92 42 0C 18 7E 54 EF 3F 6E 54 08 50 57 52
-5F 48 45 52 45 00 92 42 C8 1D 7C 54 92 42 C6 1D
-7E 54 30 4D 82 54 08 52 53 54 5F 48 45 52 45 00
-92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F FE 51
-04 57 49 50 45 00 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B2 40 2A 48 28 48 B2 40 58 55 56 55 B2 40
-98 52 0E 18 B2 40 6A 64 0C 18 30 12 8C 54 B2 40
-90 48 8E 48 B2 40 54 49 52 49 B2 40 A0 47 9E 47
-B2 40 CC 47 CA 47 B2 40 3C 1D 9E 48 B2 40 18 00
-0A 18 37 40 1A 44 36 40 BC 44 35 40 0E 44 34 40
-00 44 39 40 10 00 29 83 89 43 E0 1D FC 23 B2 40
-0A 00 DC 1D B2 40 20 00 B4 1D 30 41 D0 54 04 57
-41 52 4D 00 30 40 58 55 3D 40 8E 55 92 C3 30 01
-1E 42 08 18 0E 93 12 24 F2 B0 10 00 20 02 02 20
-3E E3 1E 53 F2 D0 30 00 2A 02 3E 90 0A 00 AB 27
-3E 90 16 00 A8 2F 2E 93 77 27 80 2F 30 4D 60 49
-06 0D 1B 5B 37 6D 23 00 22 49 E2 46 60 49 1F 46
-61 73 74 46 6F 72 74 68 20 56 33 30 30 20 28 43
-29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 20 22 49
-34 44 80 FF F2 46 28 45 D2 46 60 49 0B 62 79 74
-65 73 20 66 72 65 65 20 24 47 98 4D F0 52 04 43
+3E 4F 82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F
+BC 1D 2A 52 82 4A C6 1D 30 41 82 9F BC 1D 09 20
+18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 48 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 4C 90 4B 05 44 45 46 45 52
+B0 12 B8 4D BA 40 30 40 FC FF BA 40 AE 4D FE FF
+E3 3F 1E 4B 06 43 52 45 41 54 45 00 B0 12 B8 4D
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 4E 05 44
+4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 49 05 3E 42 4F 44 59 2E 52
+30 4D 44 4E 04 43 4F 44 45 00 B0 12 B8 4D 82 43
+5C 61 A2 82 C6 1D 87 12 D6 50 B0 50 2A 44 84 4E
+07 43 4F 44 45 4E 4E 4D B0 12 86 4D F0 3F 00 00
+07 45 4E 44 43 4F 44 45 87 12 E4 50 FA 4D 2A 44
+2C 4C 03 41 53 4D B2 40 B4 50 DA 1D DE 3F B0 4E
+06 45 4E 44 41 53 4D 00 87 12 B8 4E F8 50 2A 44
+00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12
+00 00 A2 53 C6 1D B2 43 BE 1D 30 40 E4 50 00 00
+05 4C 4F 32 48 49 1A 42 C6 1D BA 40 B0 12 00 00
+BA 40 2A 44 02 00 A2 52 C6 1D ED 3F 1A 4D 85 48
+49 32 4C 4F 87 12 A0 4A 4E 4F B0 4A E0 4C D6 50
+B0 50 2A 44 1E 4F 82 49 46 00 2F 83 8F 4E 00 00
+1E 42 C6 1D A2 52 C6 1D BE 40 40 46 00 00 2E 53
+30 4D 5E 4E 84 45 4C 53 45 00 A2 52 C6 1D 1A 42
+C6 1D BA 40 3C 46 FC FF 8E 4A 00 00 2A 83 0E 4A
+30 4D D0 47 84 54 48 45 4E 00 9E 42 C6 1D 00 00
+3E 4F 30 4D A0 4E 85 42 45 47 49 4E 30 40 A0 4A
+74 4F 85 55 4E 54 49 4C 39 40 40 46 A2 52 C6 1D
+1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D
+C2 4E 85 41 47 41 49 4E 39 40 3C 46 EF 3F 7A 48
+85 57 48 49 4C 45 87 12 3A 4F 76 44 2A 44 34 48
+86 52 45 50 45 41 54 00 87 12 B8 4F 7A 4F 2A 44
+54 4F 82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D
+1E 42 C6 1D BE 40 54 46 FE FF A2 53 00 1C 1A 42
+00 1C 8A 43 00 00 30 4D E2 4A 84 4C 4F 4F 50 00
+39 40 76 46 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF
+8A 4E FE FF 1E 42 00 1C A2 83 00 1C 2E 4E 0E 93
+03 24 8E 4A 00 00 F6 3F 3E 4F 30 4D 90 46 85 2B
+4C 4F 4F 50 39 40 64 46 E5 3F 0A 50 04 4D 4F 56
+45 00 0A 4E 38 4F 39 4F 3E 4F 0A 93 11 24 08 99
+0F 24 06 2C F8 49 00 00 18 53 1A 83 FB 23 30 4D
+08 5A 09 5A 19 83 18 83 E8 49 00 00 1A 83 FA 23
+30 4D 14 48 CA 1D F2 44 2A 44 84 12 82 50 B2 4F
+68 53 E2 4F BE 4C 36 4F 3E 50 7C 54 64 48 6A 51
+84 51 92 4F 04 52 00 00 4E 54 E8 4C 78 4E 00 00
+84 12 82 50 26 60 BE 5F 22 5F E6 5A 8A 59 00 00
+EA 5D 00 00 4C 61 60 61 E2 59 20 5A F2 5F 00 00
+00 00 C2 5A AE 50 3A 40 0C 00 39 40 CA 1D 38 40
+CC 1D C6 3F 3A 40 0E 00 39 40 CC 1D 38 40 CA 1D
+B9 3F 82 43 CC 1D 30 4D 92 42 CA 1D DA 1D 30 4D
+8A 50 F2 50 F8 50 08 51 3A 4E 82 4A C8 1D 2E 4E
+82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23 2A 4A
+0A 93 F0 23 3E 4F 3D 41 30 4D 32 4D 09 50 57 52
+5F 53 54 41 54 45 84 12 00 51 D4 50 98 61 D0 4F
+09 52 53 54 5F 53 54 41 54 45 92 42 0E 18 4A 51
+92 42 0C 18 4C 51 EF 3F 3C 51 08 50 57 52 5F 48
+45 52 45 00 92 42 C8 1D 4A 51 92 42 C6 1D 4C 51
+30 4D 50 51 08 52 53 54 5F 48 45 52 45 00 92 42
+C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F C0 4F 04 57
+49 50 45 00 39 40 10 00 29 83 B9 43 80 FF FC 23
+B2 40 E0 46 DE 46 B2 40 0E 52 0C 52 B2 40 D4 50
+0E 18 B2 40 98 61 0C 18 30 12 5A 51 B2 40 86 47
+84 47 B2 40 08 48 06 48 B2 40 98 46 96 46 B2 40
+18 00 0A 18 37 40 1A 44 36 40 92 44 35 40 0E 44
+34 40 00 44 B2 40 0A 00 DC 1D B2 40 20 00 B4 1D
+30 41 9E 51 04 57 41 52 4D 00 30 40 0E 52 3D 40
+44 52 92 C3 30 01 1E 42 08 18 0E 93 12 24 F2 B0
+10 00 20 02 02 20 3E E3 1E 53 F2 D0 30 00 2A 02
+3E 90 0A 00 B7 27 3E 90 16 00 B4 2F 2E 93 83 27
+8C 2F 30 4D 1E 48 06 0D 1B 5B 37 6D 23 00 D6 47
+34 46 1E 48 19 46 61 73 74 46 6F 72 74 68 20 C2
+A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 20 D6 47
+14 48 30 FF A0 4A B8 44 24 46 1E 48 0A 62 79 74
+65 73 20 66 72 65 65 00 3C 46 9A 4C 86 4F 04 43
 4F 4C 44 00 92 B3 EA 05 FD 23 B2 40 04 A5 20 01
-B2 40 88 5A 5C 01 92 43 04 02 B2 40 FE FF 02 02
-A2 83 06 02 B2 43 26 02 B2 43 22 02 D2 D3 24 02
-B2 43 42 02 B2 43 46 02 B2 43 62 02 B2 43 66 02
-B2 40 80 00 84 02 B2 40 7F FF 82 02 B2 40 7F FF
-86 02 F2 43 22 03 F2 43 26 03 F2 40 A5 00 61 01
-82 43 62 01 82 43 66 01 39 40 10 00 B2 40 33 00
-64 01 D2 43 61 01 92 D2 9E 01 08 18 38 40 59 14
-18 83 FE 23 19 83 FA 23 B2 42 B0 01 F2 D0 10 00
-2A 03 F2 C0 40 00 A2 04 39 40 00 08 29 83 89 43
-00 1C FC 23 39 40 3A 00 29 83 B9 40 F0 55 C6 FF
-FB 23 B2 40 30 48 E4 FF B2 40 81 00 E0 05 92 42
-02 18 E6 05 92 42 04 18 E8 05 92 C3 E0 05 92 D3
-FA 05 3F 40 80 1C 31 40 E0 1C 30 12 54 55 2E 3F
-38 40 C0 1D 39 48 2A 48 09 5A 1A 52 C4 1D 09 9A
-03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A C4 1D
-30 4D B6 54 09 32 43 4F 4E 53 54 41 4E 54 87 12
-80 4F D6 4B D6 4B 98 4F FA 56 2F 83 9F 4E 02 00
-00 00 2E 4E 3D 41 30 4D E4 56 09 32 56 41 52 49
-41 42 4C 45 87 12 80 4F 34 44 04 00 06 47 98 4F
-2A 44 1C 15 B0 12 2A 44 C4 49 1C 4A 32 47 38 57
-D8 4A 28 47 CC 4D 70 57 3A 57 29 4E 39 90 86 12
-02 20 2E 53 15 3C 39 90 85 12 03 20 1E 4E 02 00
-0F 3C 39 90 84 12 0C 20 2E 52 B9 90 F8 56 02 00
-04 24 B9 90 20 57 02 00 03 20 B0 12 FA 56 70 57
-1B 17 30 41 32 B0 00 02 01 24 3E 4F 30 41 3E 40
-28 00 B0 12 22 57 B0 12 74 57 19 42 C6 1D A2 53
-C6 1D 89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 1D
-92 53 C4 1D B0 12 2A 44 C4 49 D8 4A 28 47 BC 57
-B2 57 21 53 3E 90 10 00 87 2D DA 2B BE 57 B2 41
-C4 1D D6 3F 87 12 B0 45 C0 56 CC 57 0C 43 1B 42
-C6 1D A2 53 C6 1D 6A 4E 3E 4F 7A 90 23 00 2F 20
-92 53 C4 1D B0 12 22 57 B0 12 74 57 0E 93 03 20
-3C 40 00 03 21 3C 1E 93 03 20 3C 40 10 03 1C 3C
-2E 93 03 20 3C 40 20 03 17 3C 2E 92 03 20 3C 40
-20 02 12 3C 3E 92 03 20 3C 40 30 02 0D 3C 3E 93
-03 20 3C 40 30 03 08 3C 3C 40 30 00 19 42 C6 1D
-A2 53 C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D 7A 90
-26 00 09 20 3C 40 10 02 92 53 C4 1D B0 12 22 57
-B0 12 74 57 EB 3F 7A 90 40 00 16 20 3C 40 20 00
-92 53 C4 1D B0 12 9A 57 0C 20 3C 50 10 00 3E 40
-2B 00 B0 12 9A 57 92 92 C0 1D C4 1D 02 24 92 53
-C4 1D 8E 10 0C 5E D8 3F B0 12 9A 57 FA 23 3C 50
-10 00 B0 12 7E 57 EF 3F 0C 43 1B 42 C6 1D A2 53
-C6 1D 87 12 B0 45 C0 56 AA 58 FE 90 26 00 00 00
-3E 40 20 00 03 20 3C 50 82 00 C6 3F B0 12 9A 57
-E1 23 3C 50 80 00 B0 12 7E 57 DC 3F 20 48 04 52
-45 54 49 00 87 12 34 44 00 13 D6 4B 2A 44 34 44
-2C 00 C4 57 A2 58 E8 58 2E 4E 0E DC 09 4B A2 3F
-4C 50 03 4D 4F 56 84 12 DE 58 00 40 F2 58 05 4D
-4F 56 2E 42 84 12 DE 58 40 40 00 00 03 41 44 44
-84 12 DE 58 00 50 0C 59 05 41 44 44 2E 42 84 12
-DE 58 40 50 18 59 04 41 44 44 43 00 84 12 DE 58
-00 60 26 59 06 41 44 44 43 2E 42 00 84 12 DE 58
-40 60 CE 58 04 53 55 42 43 00 84 12 DE 58 00 70
-44 59 06 53 55 42 43 2E 42 00 84 12 DE 58 40 70
-52 59 03 53 55 42 84 12 DE 58 00 80 62 59 05 53
-55 42 2E 42 84 12 DE 58 40 80 2E 50 03 43 4D 50
-84 12 DE 58 00 90 7C 59 05 43 4D 50 2E 42 84 12
-DE 58 40 90 1C 50 04 44 41 44 44 00 84 12 DE 58
-00 A0 96 59 06 44 41 44 44 2E 42 00 84 12 DE 58
-40 A0 88 59 03 42 49 54 84 12 DE 58 00 B0 B4 59
-05 42 49 54 2E 42 84 12 DE 58 40 B0 C0 59 03 42
-49 43 84 12 DE 58 00 C0 CE 59 05 42 49 43 2E 42
-84 12 DE 58 40 C0 DA 59 03 42 49 53 84 12 DE 58
-00 D0 E8 59 05 42 49 53 2E 42 84 12 DE 58 40 D0
-00 00 03 58 4F 52 84 12 DE 58 00 E0 02 5A 05 58
-4F 52 2E 42 84 12 DE 58 40 E0 34 59 03 41 4E 44
-84 12 DE 58 00 F0 1C 5A 05 41 4E 44 2E 42 84 12
-DE 58 40 F0 B0 45 C4 57 3A 5A 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F 6E 59 03 52 52 43
-84 12 34 5A 00 10 4C 5A 05 52 52 43 2E 42 84 12
-34 5A 40 10 58 5A 04 53 57 50 42 00 84 12 34 5A
-80 10 66 5A 03 52 52 41 84 12 34 5A 00 11 74 5A
-05 52 52 41 2E 42 84 12 34 5A 40 11 80 5A 03 53
-58 54 84 12 34 5A 80 11 00 00 04 50 55 53 48 00
-84 12 34 5A 00 12 9A 5A 06 50 55 53 48 2E 42 00
-84 12 34 5A 40 12 F4 59 04 43 41 4C 4C 00 84 12
-34 5A 80 12 1A 53 0E 4A 87 12 E2 46 60 49 0D 6F
-75 74 20 6F 66 20 62 6F 75 6E 64 73 48 4D B0 45
-C0 56 E4 5A 92 53 C4 1D 3E 40 2C 00 B0 12 2A 44
-C4 49 D8 4A 28 47 CC 4D 98 58 FC 5A 0A 4E 3E 4F
-1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
-0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F 2A 92
-D1 2F 8A 10 5A 06 8F 3F 8E 5A 06 52 52 43 4D 2E
-41 00 84 12 DE 5A 40 00 2A 5B 04 52 52 43 4D 00
-84 12 DE 5A 50 00 3A 5B 06 52 52 41 4D 2E 41 00
-84 12 DE 5A 40 01 48 5B 04 52 52 41 4D 00 84 12
-DE 5A 50 01 58 5B 06 52 4C 41 4D 2E 41 00 84 12
-DE 5A 40 02 66 5B 04 52 4C 41 4D 00 84 12 DE 5A
-50 02 76 5B 06 52 52 55 4D 2E 41 00 84 12 DE 5A
-40 03 84 5B 04 52 52 55 4D 00 84 12 DE 5A 50 03
-A8 5A 07 50 55 53 48 4D 2E 41 84 12 DE 5A 00 14
-A2 5B 05 50 55 53 48 4D 84 12 DE 5A 00 15 B2 5B
-06 50 4F 50 4D 2E 41 00 84 12 DE 5A 00 16 C0 5B
-04 50 4F 50 4D 00 84 12 DE 5A 00 17 85 12 00 3C
-94 5B 03 53 3E 3D 85 12 00 38 E2 5B 02 53 3C 00
-85 12 00 34 D0 5B 03 30 3E 3D 85 12 00 30 F6 5B
-02 30 3C 00 85 12 00 30 00 00 02 55 3C 00 85 12
-00 2C 0A 5C 03 55 3E 3D 85 12 00 28 00 5C 03 30
-3C 3E 85 12 00 24 1E 5C 02 30 3D 00 85 12 00 20
-00 00 02 49 46 00 1A 42 C6 1D 8A 4E 00 00 A2 53
-C6 1D 0E 4A 30 4D 14 5C 04 54 48 45 4E 00 1A 42
-C6 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
-00 02 31 2F 88 DA 00 00 30 4D A4 59 04 45 4C 53
-45 00 1A 42 C6 1D BA 40 00 3C 00 00 A2 53 C6 1D
-2F 83 8F 4A 00 00 E3 3F 48 5C 05 55 4E 54 49 4C
-3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11
-3A 90 00 FE 10 3B 3A F0 FF 03 08 DA 89 48 00 00
-A2 53 C6 1D 30 4D 28 5A 05 41 47 41 49 4E 87 12
-DC 5B 90 5C 2A 44 00 00 05 57 48 49 4C 45 87 12
-36 5C 78 44 2A 44 EC 5B 06 52 45 50 45 41 54 00
-87 12 DC 5B 90 5C 4E 5C 2A 44 EC 5C 3D 41 2E 4E
-08 4E 3E 4F 2A 48 0A 93 88 43 00 00 CA 23 98 42
-C6 1D 00 00 30 4D B8 5A 03 42 57 31 84 12 EA 5C
-E0 1D 08 5D 03 42 57 32 84 12 EA 5C E2 1D 14 5D
-03 42 57 33 84 12 EA 5C E4 1D 2C 5D 3D 41 1A 42
-C6 1D 2E 4E 28 4E 08 93 8E 43 00 00 8B 23 BA 4F
-00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00
-03 46 57 31 84 12 2A 5D E6 1D 50 5D 03 46 57 32
-84 12 2A 5D E8 1D 5C 5D 03 46 57 33 84 12 2A 5D
-EA 1D 3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10
-02 24 3E E0 00 08 30 4D 68 5D 04 47 4F 54 4F 00
-87 12 DC 5B BE 4D CC 4B 2A 44 00 00 05 3F 47 4F
-54 4F 87 12 72 5D BE 4D CC 4B 2A 44 00 00 03 4A
-4D 50 87 12 BE 4D BE 5C 2A 44 9C 5D 04 3F 4A 4D
-50 00 87 12 72 5D BE 4D 78 44 90 5C 2A 44 87 12
-B0 45 C0 56 D6 5D 69 4E 3E 4F 3C 4F 2C 4C 1B 42
-C6 1D A2 53 C6 1D 79 90 52 00 0A 20 B0 12 9A 57
-5E 0E 5E 0E 0E DC 8B 4E 00 00 0E 4B 3D 41 30 4D
-79 90 23 00 0D 20 3C C0 40 00 92 53 C4 1D A2 53
-C6 1D B0 12 22 57 BB 4F 02 00 3E F0 0F 00 E8 3F
-79 90 26 00 03 20 3C E0 E0 00 EF 3F 3C C0 F0 00
-79 90 40 00 12 20 92 53 C4 1D B0 12 9A 57 D8 23
-3C D0 10 00 3E 40 2B 00 B0 12 9A 57 92 92 C0 1D
-C4 1D CE 27 92 53 C4 1D CB 3F 3C D0 30 00 A2 53
-C6 1D 3E 40 28 00 B0 12 22 57 BB 4F 02 00 3E 40
-29 00 EA 3F 87 12 B0 45 C0 56 7C 5E 3B 4F 2C 4B
-69 4E 7E 40 20 00 79 90 52 00 03 20 B0 12 9A 57
-B1 3F 3C C0 F0 00 A2 53 C6 1D 79 90 26 00 09 20
-3C D0 60 00 92 53 C4 1D B0 12 22 57 BB 4F 02 00
-A1 3F 3C D0 70 00 3E 40 28 00 B0 12 22 57 BB 4F
-02 00 3E 40 29 00 E2 3F 34 44 2C 00 CE 5D 74 5E
-62 44 2A 44 FE 58 04 4D 4F 56 41 00 84 12 C8 5E
-C0 00 20 5D 04 43 4D 50 41 00 84 12 C8 5E D0 00
-B8 5C 04 41 44 44 41 00 84 12 C8 5E E0 00 D8 5C
-04 53 55 42 41 00 84 12 C8 5E F0 00 E4 5E 05 43
-41 4C 4C 41 87 12 B0 45 C0 56 1C 5F 1B 42 C6 1D
-A2 53 C6 1D 6E 4E 3C 40 34 01 7E 90 52 00 0B 20
-7E 40 20 00 B0 12 9A 57 5C 0E 0C DE 8B 4C 00 00
-3E 4F 3D 41 30 4D 2C 53 7E 90 40 00 0B 20 92 53
-C4 1D 7E 40 20 00 B0 12 9A 57 EE 23 1C 53 3E 40
-2B 00 E8 3F A2 53 C6 1D 7E 90 23 00 09 20 3C 40
-3B 01 92 53 C4 1D B0 12 22 57 BB 4F 02 00 DC 3F
-7E 90 26 00 02 20 2C 53 F4 3F 7E 40 28 00 1C 83
-B0 12 22 57 BB 4F 02 00 3E 40 29 00 CB 3F 87 12
-B0 45 C0 56 A6 5F 69 4E 3E 4F 3C 40 00 18 79 90
-52 00 05 20 B0 12 9A 57 0E 4C 3D 41 30 4D 82 43
-EE 1D 79 90 23 00 0B 20 92 53 C4 1D B0 12 22 57
-2F 53 3E F0 0F 00 5E 0A 5E 0E 0C DE ED 3F 79 90
-26 00 F2 27 79 90 40 00 12 20 92 53 C4 1D B0 12
-9A 57 E2 23 3E 40 2B 00 92 53 C4 1D B0 12 9A 57
-92 92 C0 1D C4 1D D8 27 92 53 C4 1D D5 3F 3E 40
-28 00 B0 12 22 57 8F 4E 00 00 3E 40 29 00 B0 12
-9A 57 3E 4F 3E F0 0F 00 0C DE EA 3F 87 12 B0 45
-C0 56 34 60 3C 4F 69 4E 3E 40 20 00 79 90 52 00
-BB 27 82 43 EE 1D 79 90 26 00 08 20 92 53 C4 1D
-B0 12 22 57 2F 53 3E F0 0F 00 BF 3F 3E 40 28 00
-B0 12 22 57 F7 3F 1B 42 C6 1D A2 53 C6 1D 0C 4E
-3E 4F 1C D2 EE 1D 82 43 EE 1D 3C DE 8B 4C 00 00
-B2 41 C4 1D 30 4D 34 44 C4 1D F2 44 B0 44 34 44
-2C 00 9E 5F 2C 60 66 60 24 47 DE 58 D6 5E 04 4D
-4F 56 58 00 84 12 86 60 40 00 00 40 9E 60 06 4D
-4F 56 58 2E 41 00 84 12 86 60 00 00 40 40 AE 60
-06 4D 4F 56 58 2E 42 00 84 12 86 60 40 00 40 40
-F2 5E 04 41 44 44 58 00 84 12 86 60 40 00 00 50
-D2 60 06 41 44 44 58 2E 41 00 84 12 86 60 00 00
-40 50 E2 60 06 41 44 44 58 2E 42 00 84 12 86 60
-40 00 40 50 F4 60 05 41 44 44 43 58 84 12 86 60
-40 00 00 60 06 61 07 41 44 44 43 58 2E 41 84 12
-86 60 00 00 40 60 16 61 07 41 44 44 43 58 2E 42
-84 12 86 60 40 00 40 60 00 5F 05 53 55 42 43 58
-84 12 86 60 40 00 00 70 3A 61 07 53 55 42 43 58
-2E 41 84 12 86 60 00 00 40 70 4A 61 07 53 55 42
-43 58 2E 42 84 12 86 60 40 00 40 70 5C 61 04 53
-55 42 58 00 84 12 86 60 40 00 00 80 6E 61 06 53
-55 42 58 2E 41 00 84 12 86 60 00 00 40 80 7E 61
-06 53 55 42 58 2E 42 00 84 12 86 60 40 00 40 80
-0E 5F 04 43 4D 50 58 00 84 12 86 60 40 00 00 90
-A2 61 06 43 4D 50 58 2E 41 00 84 12 86 60 00 00
-40 90 B2 61 06 43 4D 50 58 2E 42 00 84 12 86 60
-40 00 40 90 6C 5C 05 44 41 44 44 58 84 12 86 60
-40 00 00 A0 D6 61 07 44 41 44 44 58 2E 41 84 12
-86 60 00 00 40 A0 E6 61 07 44 41 44 44 58 2E 42
-84 12 86 60 40 00 40 A0 C4 61 04 42 49 54 58 00
-84 12 86 60 40 00 00 B0 0A 62 06 42 49 54 58 2E
-41 00 84 12 86 60 00 00 40 B0 1A 62 06 42 49 54
-58 2E 42 00 84 12 86 60 40 00 40 B0 2C 62 04 42
-49 43 58 00 84 12 86 60 40 00 00 C0 3E 62 06 42
-49 43 58 2E 41 00 84 12 86 60 00 00 40 C0 4E 62
-06 42 49 43 58 2E 42 00 84 12 86 60 40 00 40 C0
-60 62 04 42 49 53 58 00 84 12 86 60 40 00 00 D0
-72 62 06 42 49 53 58 2E 41 00 84 12 86 60 00 00
-40 D0 82 62 06 42 49 53 58 2E 42 00 84 12 86 60
-40 00 40 D0 0E 5A 04 58 4F 52 58 00 84 12 86 60
-40 00 00 E0 A6 62 06 58 4F 52 58 2E 41 00 84 12
-86 60 00 00 40 E0 B6 62 06 58 4F 52 58 2E 42 00
-84 12 86 60 40 00 40 E0 28 61 04 41 4E 44 58 00
-84 12 86 60 40 00 00 F0 DA 62 06 41 4E 44 58 2E
-41 00 84 12 86 60 00 00 40 F0 EA 62 06 41 4E 44
-58 2E 42 00 84 12 86 60 40 00 40 F0 34 44 C4 1D
-F2 44 B0 44 B0 45 9E 5F 66 60 24 47 34 5A 90 61
-04 52 52 43 58 00 84 12 0C 63 40 00 00 10 20 63
-06 52 52 43 58 2E 41 00 84 12 0C 63 00 00 40 10
-30 63 06 52 52 43 58 2E 42 00 84 12 0C 63 40 00
-40 10 42 63 04 52 52 55 58 00 84 12 0C 63 40 01
-00 10 54 63 06 52 52 55 58 2E 41 00 84 12 0C 63
-00 01 40 10 64 63 06 52 52 55 58 2E 42 00 84 12
-0C 63 40 01 40 10 76 63 05 53 57 50 42 58 84 12
-0C 63 40 00 80 10 88 63 07 53 57 50 42 58 2E 41
-84 12 0C 63 00 00 80 10 98 63 04 52 52 41 58 00
-84 12 0C 63 40 00 00 11 AA 63 06 52 52 41 58 2E
-41 00 84 12 0C 63 00 00 40 11 BA 63 06 52 52 41
-58 2E 42 00 84 12 0C 63 40 00 40 11 CC 63 04 53
-58 54 58 00 84 12 0C 63 40 00 80 11 DE 63 06 53
-58 54 58 2E 41 00 84 12 0C 63 00 00 80 11 28 5C
-05 50 55 53 48 58 84 12 0C 63 40 00 00 12 00 64
-07 50 55 53 48 58 2E 41 84 12 0C 63 00 00 40 12
-10 64 07 50 55 53 48 58 2E 42 84 12 0C 63 40 00
-40 12 EE 63 03 52 50 54 87 12 B0 45 C0 56 40 64
-29 4E 7E 40 20 00 79 90 52 00 06 20 B0 12 9A 57
-03 24 3E D0 80 00 04 3C B0 12 22 57 3E F0 0F 00
-82 4E EE 1D 3E 4F 3D 41 30 4D
+44 52 B2 40 88 5A 5C 01 B2 40 FE FF 02 02 B2 D3
+06 02 B2 43 26 02 B2 43 22 02 D2 D3 24 02 B2 43
+42 02 B2 43 46 02 B2 43 62 02 B2 43 66 02 B2 40
+7F FF 82 02 B2 43 86 02 F2 43 22 03 F2 43 26 03
+F2 40 A5 00 61 01 82 43 62 01 82 43 66 01 39 40
+10 00 B2 40 33 00 64 01 D2 43 61 01 92 D2 9E 01
+08 18 38 40 59 14 18 83 FE 23 19 83 FA 23 B2 42
+B0 01 F2 D0 10 00 2A 03 F2 C0 40 00 A2 04 39 40
+00 08 29 83 89 43 00 1C FC 23 39 40 3A 00 29 83
+B9 40 A2 52 C6 FF FB 23 B2 40 26 47 E4 FF B2 40
+81 00 E0 05 92 42 02 18 E6 05 92 42 04 18 E8 05
+92 C3 E0 05 92 D3 FA 05 3F 40 80 1C 31 40 E0 1C
+30 12 0A 52 3C 3F 8E 52 07 43 4F 4D 50 41 52 45
+0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83
+07 30 1C 83 07 30 19 53 F9 98 FF FF F5 27 02 2C
+3E 43 30 4D 1E 43 30 4D B2 4D 86 5B 54 48 45 4E
+5D 00 30 4D 9A 53 86 5B 45 4C 53 45 5D 00 87 12
+14 48 00 00 C6 44 42 4B 80 48 24 4B 34 44 40 46
+10 54 44 44 1E 48 06 5B 54 48 45 4E 5D 00 70 53
+4A 46 E0 53 F8 47 D0 44 58 44 4A 46 B6 53 2A 44
+44 44 1E 48 06 5B 45 4C 53 45 5D 00 70 53 4A 46
+FE 53 F8 47 D0 44 58 44 4A 46 B4 53 2A 44 1E 48
+04 5B 49 46 5D 00 70 53 4A 46 B6 53 3C 46 B4 53
+F8 47 1E 48 05 0D 0A 6B 6F 20 D6 47 8C 47 32 4B
+3C 46 B6 53 A6 53 84 5B 49 46 5D 00 0E 93 3E 4F
+BE 27 30 4D 26 54 89 5B 44 45 46 49 4E 45 44 5D
+87 12 42 4B 80 48 EE 48 6A 44 2A 44 36 54 8B 5B
+55 4E 44 45 46 49 4E 45 44 5D 87 12 42 4B 80 48
+EE 48 6A 44 00 45 2A 44 6A 54 3D 41 B2 4E 0E 18
+A2 4E 0C 18 3E 4F 30 40 5A 51 4C 50 06 4D 41 52
+4B 45 52 00 B0 12 B8 4D BA 40 84 12 FC FF BA 40
+68 54 FE FF 9A 42 C8 1D 00 00 28 83 8A 48 02 00
+A2 52 C6 1D 30 40 00 4E 1C 15 B0 12 2A 44 80 48
+EE 48 4A 46 BE 54 AA 49 40 46 CE 4C D8 54 C0 54
+39 4E 39 80 86 12 08 24 19 53 02 20 2E 4E 04 3C
+2E 53 19 53 01 24 2E 82 1B 17 30 41 32 B0 00 02
+01 24 3E 4F 30 41 3E 40 28 00 B0 12 A8 54 B0 12
+DC 54 19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40
+29 00 1C 15 12 12 C4 1D 92 53 C4 1D B0 12 2A 44
+80 48 AA 49 40 46 24 55 1A 55 21 53 3E 90 10 00
+81 2D DA 2B 26 55 B2 41 C4 1D D6 3F 87 12 42 4B
+74 48 34 55 0C 43 1B 42 C6 1D A2 53 C6 1D 6A 4E
+3E 4F 7A 90 23 00 29 20 92 53 C4 1D B0 12 A8 54
+B0 12 DC 54 3C 40 00 03 0E 93 1C 24 3C 40 10 03
+1E 93 18 24 3C 40 20 03 2E 93 14 24 3C 40 20 02
+2E 92 10 24 3C 40 30 02 3E 92 0C 24 3C 40 30 03
+3E 93 08 24 3C 40 30 00 19 42 C6 1D A2 53 C6 1D
+89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00 09 20
+3C 40 10 02 92 53 C4 1D B0 12 A8 54 B0 12 DC 54
+EB 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D
+B0 12 02 55 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
+02 55 92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10
+0C 5E D8 3F B0 12 02 55 FA 23 3C 50 10 00 B0 12
+E6 54 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 87 12
+42 4B 74 48 06 56 FE 90 26 00 00 00 3E 40 20 00
+03 20 3C 50 82 00 C6 3F B0 12 02 55 E1 23 3C 50
+80 00 B0 12 E6 54 DC 3F D6 46 04 52 45 54 49 00
+87 12 14 48 00 13 B0 4A 2A 44 14 48 2C 00 2C 55
+FE 55 44 56 09 4B 2E 4E 0E DC A2 3F 00 4F 03 4D
+4F 56 84 12 3A 56 00 40 4E 56 05 4D 4F 56 2E 42
+84 12 3A 56 40 40 00 00 03 41 44 44 84 12 3A 56
+00 50 68 56 05 41 44 44 2E 42 84 12 3A 56 40 50
+74 56 04 41 44 44 43 00 84 12 3A 56 00 60 82 56
+06 41 44 44 43 2E 42 00 84 12 3A 56 40 60 2A 56
+04 53 55 42 43 00 84 12 3A 56 00 70 A0 56 06 53
+55 42 43 2E 42 00 84 12 3A 56 40 70 AE 56 03 53
+55 42 84 12 3A 56 00 80 BE 56 05 53 55 42 2E 42
+84 12 3A 56 40 80 E2 4E 03 43 4D 50 84 12 3A 56
+00 90 D8 56 05 43 4D 50 2E 42 84 12 3A 56 40 90
+D0 4E 04 44 41 44 44 00 84 12 3A 56 00 A0 F2 56
+06 44 41 44 44 2E 42 00 84 12 3A 56 40 A0 E4 56
+03 42 49 54 84 12 3A 56 00 B0 10 57 05 42 49 54
+2E 42 84 12 3A 56 40 B0 1C 57 03 42 49 43 84 12
+3A 56 00 C0 2A 57 05 42 49 43 2E 42 84 12 3A 56
+40 C0 36 57 03 42 49 53 84 12 3A 56 00 D0 44 57
+05 42 49 53 2E 42 84 12 3A 56 40 D0 00 00 03 58
+4F 52 84 12 3A 56 00 E0 5E 57 05 58 4F 52 2E 42
+84 12 3A 56 40 E0 90 56 03 41 4E 44 84 12 3A 56
+00 F0 78 57 05 41 4E 44 2E 42 84 12 3A 56 40 F0
+42 4B 2C 55 96 57 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4F 3F CA 56 03 52 52 43 84 12 90 57
+00 10 A8 57 05 52 52 43 2E 42 84 12 90 57 40 10
+B4 57 04 53 57 50 42 00 84 12 90 57 80 10 C2 57
+03 52 52 41 84 12 90 57 00 11 D0 57 05 52 52 41
+2E 42 84 12 90 57 40 11 DC 57 03 53 58 54 84 12
+90 57 80 11 00 00 04 50 55 53 48 00 84 12 90 57
+00 12 F6 57 06 50 55 53 48 2E 42 00 84 12 90 57
+40 12 50 57 04 43 41 4C 4C 00 84 12 90 57 80 12
+1A 53 0E 4A 87 12 34 46 1E 48 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 4C 4C 42 4B 74 48 40 58
+92 53 C4 1D 3E 40 2C 00 B0 12 2A 44 80 48 AA 49
+40 46 CE 4C F4 55 58 58 0A 4E 3E 4F 1A 83 E0 33
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10
+5A 06 8F 3F EA 57 06 52 52 43 4D 2E 41 00 84 12
+3A 58 40 00 86 58 04 52 52 43 4D 00 84 12 3A 58
+50 00 96 58 06 52 52 41 4D 2E 41 00 84 12 3A 58
+40 01 A4 58 04 52 52 41 4D 00 84 12 3A 58 50 01
+B4 58 06 52 4C 41 4D 2E 41 00 84 12 3A 58 40 02
+C2 58 04 52 4C 41 4D 00 84 12 3A 58 50 02 D2 58
+06 52 52 55 4D 2E 41 00 84 12 3A 58 40 03 E0 58
+04 52 52 55 4D 00 84 12 3A 58 50 03 04 58 07 50
+55 53 48 4D 2E 41 84 12 3A 58 00 14 FE 58 05 50
+55 53 48 4D 84 12 3A 58 00 15 0E 59 06 50 4F 50
+4D 2E 41 00 84 12 3A 58 00 16 1C 59 04 50 4F 50
+4D 00 84 12 3A 58 00 17 F0 58 03 53 3E 3D 85 12
+00 38 3A 59 02 53 3C 00 85 12 00 34 2C 59 03 30
+3E 3D 85 12 00 30 4E 59 02 30 3C 00 85 12 00 30
+00 00 02 55 3C 00 85 12 00 2C 62 59 03 55 3E 3D
+85 12 00 28 58 59 03 30 3C 3E 85 12 00 24 76 59
+02 30 3D 00 85 12 00 20 00 00 02 49 46 00 1A 42
+C6 1D 8A 4E 00 00 A2 53 C6 1D 0E 4A 30 4D 6C 59
+04 54 48 45 4E 00 1A 42 C6 1D 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 33 2F 88 DA 00 00
+30 4D 00 57 04 45 4C 53 45 00 1A 42 C6 1D BA 40
+00 3C 00 00 A2 53 C6 1D 2F 83 8F 4A 00 00 E3 3F
+A0 59 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C6 1D 2A 83 0A 89 0A 11 3A 90 00 FE 12 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C6 1D 30 4D 84 57
+05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+05 57 48 49 4C 45 87 12 8E 59 76 44 2A 44 44 59
+06 52 45 50 45 41 54 00 87 12 16 5A A6 59 2A 44
+42 5A 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D CD 2F
+98 42 C6 1D 00 00 30 4D 14 58 03 42 57 31 84 12
+40 5A 00 00 5A 5A 03 42 57 32 84 12 40 5A 00 00
+66 5A 03 42 57 33 84 12 40 5A 00 00 7E 5A 3D 41
+1A 42 C6 1D 28 4E B2 92 C4 1D 90 2B BA 4F 00 00
+A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
+57 31 84 12 7C 5A 00 00 9E 5A 03 46 57 32 84 12
+7C 5A 00 00 AA 5A 03 46 57 33 84 12 7C 5A 00 00
+00 00 05 3F 47 4F 54 4F 3E 90 00 30 07 24 3E E0
+00 04 3E B0 00 10 02 24 3E E0 00 08 87 12 C0 4C
+DA 4A 2A 44 B6 5A 04 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C F2 3F 87 12 42 4B 74 48 00 5B
+69 4E 3E 4F 3C 4F 2C 4C 1B 42 C6 1D A2 53 C6 1D
+79 90 52 00 0A 20 B0 12 02 55 5E 0E 5E 0E 0E DC
+8B 4E 00 00 0E 4B 3D 41 30 4D 79 90 23 00 0D 20
+3C C0 40 00 92 53 C4 1D A2 53 C6 1D B0 12 A8 54
+BB 4F 02 00 3E F0 0F 00 E8 3F 79 90 26 00 03 20
+3C E0 E0 00 EF 3F 3C C0 F0 00 79 90 40 00 12 20
+92 53 C4 1D B0 12 02 55 D8 23 3C D0 10 00 3E 40
+2B 00 B0 12 02 55 92 92 C0 1D C4 1D CE 27 92 53
+C4 1D CB 3F 3C D0 30 00 A2 53 C6 1D 3E 40 28 00
+B0 12 A8 54 BB 4F 02 00 3E 40 29 00 EA 3F 87 12
+42 4B 74 48 A6 5B 3B 4F 2C 4B 69 4E 7E 40 20 00
+79 90 52 00 03 20 B0 12 02 55 B1 3F 3C C0 F0 00
+A2 53 C6 1D 79 90 26 00 09 20 3C D0 60 00 92 53
+C4 1D B0 12 A8 54 BB 4F 02 00 A1 3F 3C D0 70 00
+3E 40 28 00 B0 12 A8 54 BB 4F 02 00 3E 40 29 00
+E2 3F 14 48 2C 00 F8 5A 9E 5B 66 44 2A 44 5A 56
+04 4D 4F 56 41 00 84 12 F2 5B C0 00 72 5A 04 43
+4D 50 41 00 84 12 F2 5B D0 00 10 5A 04 41 44 44
+41 00 84 12 F2 5B E0 00 30 5A 04 53 55 42 41 00
+84 12 F2 5B F0 00 0E 5C 05 43 41 4C 4C 41 87 12
+42 4B 74 48 46 5C 1B 42 C6 1D A2 53 C6 1D 6E 4E
+3C 40 34 01 7E 90 52 00 0B 20 7E 40 20 00 B0 12
+02 55 5C 0E 0C DE 8B 4C 00 00 3E 4F 3D 41 30 4D
+2C 53 7E 90 40 00 0B 20 92 53 C4 1D 7E 40 20 00
+B0 12 02 55 EE 23 1C 53 3E 40 2B 00 E8 3F A2 53
+C6 1D 7E 90 23 00 09 20 3C 40 3B 01 92 53 C4 1D
+B0 12 A8 54 BB 4F 02 00 DC 3F 7E 90 26 00 02 20
+2C 53 F4 3F 7E 40 28 00 1C 83 B0 12 A8 54 BB 4F
+02 00 3E 40 29 00 CB 3F 87 12 42 4B 74 48 D0 5C
+69 4E 3E 4F 3C 40 00 18 79 90 52 00 05 20 B0 12
+02 55 0E 4C 3D 41 30 4D 82 43 5C 61 79 90 23 00
+0B 20 92 53 C4 1D B0 12 A8 54 2F 53 3E F0 0F 00
+5E 0A 5E 0E 0C DE ED 3F 79 90 26 00 F2 27 79 90
+40 00 12 20 92 53 C4 1D B0 12 02 55 E2 23 3E 40
+2B 00 92 53 C4 1D B0 12 02 55 92 92 C0 1D C4 1D
+D8 27 92 53 C4 1D D5 3F 3E 40 28 00 B0 12 A8 54
+8F 4E 00 00 3E 40 29 00 B0 12 02 55 3E 4F 3E F0
+0F 00 0C DE EA 3F 87 12 42 4B 74 48 5E 5D 3C 4F
+69 4E 3E 40 20 00 79 90 52 00 BB 27 82 43 5C 61
+79 90 26 00 08 20 92 53 C4 1D B0 12 A8 54 2F 53
+3E F0 0F 00 BF 3F 3E 40 28 00 B0 12 A8 54 F7 3F
+1B 42 C6 1D A2 53 C6 1D 0C 4E 3E 4F 1C D2 5C 61
+82 43 5C 61 3C DE 8B 4C 00 00 B2 41 C4 1D 30 4D
+14 48 C4 1D EA 44 86 44 14 48 2C 00 C8 5C 56 5D
+90 5D 3C 46 3A 56 00 5C 04 4D 4F 56 58 00 84 12
+B0 5D 40 00 00 40 C8 5D 06 4D 4F 56 58 2E 41 00
+84 12 B0 5D 00 00 40 40 D8 5D 06 4D 4F 56 58 2E
+42 00 84 12 B0 5D 40 00 40 40 1C 5C 04 41 44 44
+58 00 84 12 B0 5D 40 00 00 50 FC 5D 06 41 44 44
+58 2E 41 00 84 12 B0 5D 00 00 40 50 0C 5E 06 41
+44 44 58 2E 42 00 84 12 B0 5D 40 00 40 50 1E 5E
+05 41 44 44 43 58 84 12 B0 5D 40 00 00 60 30 5E
+07 41 44 44 43 58 2E 41 84 12 B0 5D 00 00 40 60
+40 5E 07 41 44 44 43 58 2E 42 84 12 B0 5D 40 00
+40 60 2A 5C 05 53 55 42 43 58 84 12 B0 5D 40 00
+00 70 64 5E 07 53 55 42 43 58 2E 41 84 12 B0 5D
+00 00 40 70 74 5E 07 53 55 42 43 58 2E 42 84 12
+B0 5D 40 00 40 70 86 5E 04 53 55 42 58 00 84 12
+B0 5D 40 00 00 80 98 5E 06 53 55 42 58 2E 41 00
+84 12 B0 5D 00 00 40 80 A8 5E 06 53 55 42 58 2E
+42 00 84 12 B0 5D 40 00 40 80 38 5C 04 43 4D 50
+58 00 84 12 B0 5D 40 00 00 90 CC 5E 06 43 4D 50
+58 2E 41 00 84 12 B0 5D 00 00 40 90 DC 5E 06 43
+4D 50 58 2E 42 00 84 12 B0 5D 40 00 40 90 C4 59
+05 44 41 44 44 58 84 12 B0 5D 40 00 00 A0 00 5F
+07 44 41 44 44 58 2E 41 84 12 B0 5D 00 00 40 A0
+10 5F 07 44 41 44 44 58 2E 42 84 12 B0 5D 40 00
+40 A0 EE 5E 04 42 49 54 58 00 84 12 B0 5D 40 00
+00 B0 34 5F 06 42 49 54 58 2E 41 00 84 12 B0 5D
+00 00 40 B0 44 5F 06 42 49 54 58 2E 42 00 84 12
+B0 5D 40 00 40 B0 56 5F 04 42 49 43 58 00 84 12
+B0 5D 40 00 00 C0 68 5F 06 42 49 43 58 2E 41 00
+84 12 B0 5D 00 00 40 C0 78 5F 06 42 49 43 58 2E
+42 00 84 12 B0 5D 40 00 40 C0 8A 5F 04 42 49 53
+58 00 84 12 B0 5D 40 00 00 D0 9C 5F 06 42 49 53
+58 2E 41 00 84 12 B0 5D 00 00 40 D0 AC 5F 06 42
+49 53 58 2E 42 00 84 12 B0 5D 40 00 40 D0 6A 57
+04 58 4F 52 58 00 84 12 B0 5D 40 00 00 E0 D0 5F
+06 58 4F 52 58 2E 41 00 84 12 B0 5D 00 00 40 E0
+E0 5F 06 58 4F 52 58 2E 42 00 84 12 B0 5D 40 00
+40 E0 52 5E 04 41 4E 44 58 00 84 12 B0 5D 40 00
+00 F0 04 60 06 41 4E 44 58 2E 41 00 84 12 B0 5D
+00 00 40 F0 14 60 06 41 4E 44 58 2E 42 00 84 12
+B0 5D 40 00 40 F0 14 48 C4 1D EA 44 86 44 42 4B
+C8 5C 90 5D 3C 46 90 57 BA 5E 04 52 52 43 58 00
+84 12 36 60 40 00 00 10 4A 60 06 52 52 43 58 2E
+41 00 84 12 36 60 00 00 40 10 5A 60 06 52 52 43
+58 2E 42 00 84 12 36 60 40 00 40 10 6C 60 04 52
+52 55 58 00 84 12 36 60 40 01 00 10 7E 60 06 52
+52 55 58 2E 41 00 84 12 36 60 00 01 40 10 8E 60
+06 52 52 55 58 2E 42 00 84 12 36 60 40 01 40 10
+A0 60 05 53 57 50 42 58 84 12 36 60 40 00 80 10
+B2 60 07 53 57 50 42 58 2E 41 84 12 36 60 00 00
+80 10 C2 60 04 52 52 41 58 00 84 12 36 60 40 00
+00 11 D4 60 06 52 52 41 58 2E 41 00 84 12 36 60
+00 00 40 11 E4 60 06 52 52 41 58 2E 42 00 84 12
+36 60 40 00 40 11 F6 60 04 53 58 54 58 00 84 12
+36 60 40 00 80 11 08 61 06 53 58 54 58 2E 41 00
+84 12 36 60 00 00 80 11 80 59 05 50 55 53 48 58
+84 12 36 60 40 00 00 12 2A 61 07 50 55 53 48 58
+2E 41 84 12 36 60 00 00 40 12 3A 61 07 50 55 53
+48 58 2E 42 84 12 36 60 40 00 40 12 00 00 18 61
+03 52 50 54 87 12 42 4B 74 48 6C 61 29 4E 7E 40
+20 00 79 90 52 00 06 20 B0 12 02 55 03 24 3E D0
+80 00 05 3C B0 12 A8 54 1E 83 3E F0 0F 00 82 4E
+5C 61 3E 4F 3D 41 30 4D
 @FFFE
-F0 55
+A2 52
 q
diff --git a/binaries/MSP_EXP430FR6989_4MHz.txt b/binaries/MSP_EXP430FR6989_4MHz.txt
deleted file mode 100644 (file)
index 2dc8393..0000000
+++ /dev/null
@@ -1,526 +0,0 @@
-@1800
-10 00 02 00 21 BB A0 0F 05 00 18 00 6C 64 98 52
-2C 01 7F B0 00 48 12 48
-@4400
-2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
-8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 44
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 44 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 44 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 44 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 44 02 3E 52 00
-0E 12 3E 4F 30 4D 96 44 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 44 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 44 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 44 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 45 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 44 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 45 02 31 2D 00
-1E 83 30 4D D8 44 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 45
-02 30 3D 00 1E 83 0E 7E 30 4D 60 45 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 45 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 44 01 3E 3E 8F F4 3B EB 37 0E 45 02 42 4C 00
-85 12 20 00 AC 45 04 42 41 53 45 00 85 12 DC 1D
-C8 44 05 53 54 41 54 45 85 12 BE 1D 96 45 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 45 06 55 4D 2F
-4D 4F 44 00 30 12 62 44 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 44 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 45
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 45 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 46
-02 23 53 00 87 12 32 46 6A 46 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 46 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 45 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 45
-02 44 2E 00 87 12 D2 45 44 44 B0 44 4C 45 64 46
-BC 44 A2 46 7E 46 22 49 EA 48 2A 44 DC 45 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 44
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 46 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 44
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A 46
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 46 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 46 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 45 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 47 03 4B 45 59 30 40 A0 47
-18 42 EC 05 2F 83 8F 4E 00 00 B0 12 00 48 92 B3
-FC 05 FD 27 1E 42 EC 05 B0 12 12 48 30 4D 00 47
-06 41 43 43 45 50 54 00 30 40 CC 47 3C 40 6E 48
-3B 40 38 48 2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00
-3C 40 20 00 3D 40 62 48 92 B3 FC 05 05 24 18 42
-EC 05 38 90 0A 00 04 20 21 53 39 40 26 48 4D 15
-A2 B3 FC 05 FD 27 B2 40 11 00 EE 05 D2 C3 22 02
-30 41 B2 40 13 00 EE 05 D2 D3 22 02 30 41 00 00
-05 53 4C 45 45 50 30 40 2A 48 12 D2 0A 18 FB 3F
-21 52 3A 17 58 42 EC 05 48 9C 08 2C 48 9B E9 27
-78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24
-CE 48 00 00 1E 53 A2 B3 FC 05 FD 27 82 48 EE 05
-30 4D 64 48 2D 83 92 B3 FC 05 E4 23 FC 27 82 93
-DE 1D 02 24 92 53 DE 1D 3E 8F 3D 41 B2 40 18 00
-0A 18 30 4D B0 46 04 45 4D 49 54 00 30 40 90 48
-08 4E 3E 4F E0 3F 10 47 03 43 49 42 85 12 3C 1D
-3F 80 06 00 8F 4E 04 00 3E 40 54 00 9F 42 9E 48
-00 00 AF 4F 02 00 88 3F 86 48 04 45 43 48 4F 00
-B2 40 82 48 5C 48 82 43 DE 1D 30 4D E0 46 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 5C 48 92 43 DE 1D
-30 4D 9C 46 05 53 50 41 43 45 2F 83 8F 4E 00 00
-3E 40 20 00 CB 3F E4 48 06 53 50 41 43 45 53 00
-0E 93 09 24 0D 12 3D 40 0C 49 EF 3F 0E 49 2D 83
-1E 83 EB 23 3D 41 3E 4F 30 4D 66 47 04 54 59 50
-45 00 0E 93 0F 24 1E 15 3D 40 38 49 28 4F 7E 48
-8F 48 00 00 2F 83 AA 3F 3A 49 2D 83 91 83 02 00
-F5 23 1D 17 2F 53 3E 4F 30 4D 98 48 02 43 52 00
-30 40 54 49 87 12 60 49 02 0D 0A 00 22 49 2A 44
-2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
-0D 63 30 4D F8 48 82 53 22 00 82 43 B4 1D 87 12
-34 44 60 49 D6 4B 34 44 22 00 C4 49 8E 49 3D 41
-B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D 3E 4F
-92 B3 C6 1D A2 63 C6 1D 30 4D CE 48 82 2E 22 00
-87 12 7A 49 34 44 22 49 D6 4B 2A 44 00 00 04 57
-4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A 3A 5C
-28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40 60 00
-C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24 18 53
-4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D F0 3F
-1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E CE 48
-00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83 0C 4E
-65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93 1E 24
-58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E FE FF
-0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23 0A 4C
-FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
-0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C 00 00
-35 40 0E 44 34 40 00 44 30 4D A2 45 07 3E 4E 55
-4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42 DC 1D
-6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80 07 00
-7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49 D0 04
-82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42 E6 04
-09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00 8F 48
-02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43 2D 15
-3D 40 1E 4B 09 43 08 43 3F 82 8F 4E 06 00 0C 4E
-7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43 02 00
-E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53 04 24
-3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F 20 4B
-2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02 7A 90
-F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43 8F 49
-02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00 79 90
-0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28 09 9B
-08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 45 2A 17
-E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A 4E 93
-2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02 3F 50
-06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00 BF 4F
-00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3 00 00
-9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20 2F 53
-30 4D BA 48 07 45 58 45 43 55 54 45 0A 4E 3E 4F
-00 4A 26 45 01 2C 1A 42 C6 1D A2 53 C6 1D 8A 4E
-00 00 3E 4F 30 4D D4 4B 87 4C 49 54 45 52 41 4C
-82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D BA 40
-34 44 00 00 8A 4E 02 00 3E 4F 32 B0 00 02 32 C0
-00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49 EB 3F
-30 4D 4C 49 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F C2 1D
-3E 4F 82 43 C4 1D 30 4D 87 12 38 4C B0 45 C4 49
-52 4C 3D 40 5A 4C E2 22 5D 3E 5C 4C 0A 4E 3E 4F
-3D 40 72 4C 39 27 3D 40 4C 4C 1A E2 BE 1D B3 27
-AD 23 74 4C 3E 4F 3D 40 4C 4C BA 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 3E 4F CD 3F
-C4 4B 08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D
-3C 49 3B 49 3A 49 3D 15 B0 12 2A 44 48 4C B0 4C
-B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D
-6C 45 04 51 55 49 54 00 82 43 08 18 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44 50 49
-A0 48 EA 48 48 4C DE 44 70 45 60 49 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 3C 4D 34 44 30 FF
-F2 46 8A 45 60 49 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 3C 4D 24 47 DE 4C C0 47 05 41 42 4F 52 54
-3F 40 80 1C D1 3F 1A 4D 86 41 42 4F 52 54 22 00
-87 12 7A 49 34 44 3C 4D D6 4B 2A 44 8F 93 02 00
-03 20 2F 52 3E 4F 30 4D B0 12 FE 54 B0 12 00 48
-92 C3 FC 05 38 40 A8 2A 39 42 09 59 03 43 19 83
-FD 23 18 83 F9 23 92 B3 FC 05 F2 23 87 12 78 54
-34 44 DE 1D F2 44 C0 48 60 49 04 1B 5B 37 6D 00
-22 49 54 44 28 47 98 4D 50 49 60 49 05 6C 69 6E
-65 3A 22 49 40 45 D2 46 22 49 60 49 04 1B 5B 30
-6D 00 22 49 20 4D 00 00 83 5B 27 5D 87 12 BE 4D
-34 44 34 44 D6 4B D6 4B 2A 44 16 4A 01 27 87 12
-B0 45 C4 49 1C 4A 28 47 CC 4D 2A 44 7C 4C CE 45
-81 5C 92 42 C0 1D C4 1D 30 4D A8 4D 81 5B 82 43
-BE 1D 30 4D D0 4D 01 5D B2 43 BE 1D 30 4D BE 4F
-02 00 3E 4F 30 4D 72 47 82 49 53 00 87 12 C8 45
-F2 44 28 47 10 4E AC 4D 34 44 EE 4D D6 4B 2A 44
-BE 4D EE 4D 2A 44 F8 4D 09 49 4D 4D 45 44 49 41
-54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D 76 49
-87 52 45 43 55 52 53 45 19 42 C6 1D 99 42 BA 1D
-00 00 A2 53 C6 1D 30 4D C2 4C 88 50 4F 53 54 50
-4F 4E 45 00 87 12 B0 45 C4 49 1C 4A 54 44 28 47
-CC 4D 70 45 28 47 74 4E 34 44 34 44 D6 4B D6 4B
-34 44 D6 4B D6 4B 2A 44 DC 4D 81 3B 82 93 BE 1D
-A8 27 87 12 34 44 2A 44 D6 4B 12 4F DE 4D 2A 44
-7A 4E 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E 00 00
-1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02 B0 12
-FE 4E BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D
-82 4F BC 1D 30 4D 92 4E 01 3A 30 12 B2 4E 87 12
-A0 49 B0 45 C4 49 D8 4E 3D 41 08 4E 7A 4E 5A D3
-5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E
-3E 4F BA 40 30 40 00 00 BA 40 C4 4E 02 00 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D
-30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D
-A8 49 FE FF 89 48 00 00 30 4D 87 12 60 49 0F 73
-74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 48 4D
-BE 49 08 56 41 52 49 41 42 4C 45 00 B0 12 CE 4E
-BA 40 86 12 FC FF E4 3F 24 4C 08 43 4F 4E 53 54
-41 4E 54 00 B0 12 CE 4E BA 40 85 12 FC FF 8A 4E
-FE FF 3E 4F D5 3F 5A 4F 06 43 52 45 41 54 45 00
-B0 12 CE 4E BA 40 85 12 FC FF 8A 4A FE FF C8 3F
-92 4C 05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12
-00 00 8A 4D 02 00 3D 41 30 4D 92 4F 05 44 45 46
-45 52 30 12 20 4F 8B 3F 7C 4A 05 3E 42 4F 44 59
-2E 52 30 4D 78 4F 04 43 4F 44 45 00 B0 12 CE 4E
-2A 82 82 4A C6 1D 87 12 C0 4E A2 52 74 52 2A 44
-C6 4F 07 43 4F 44 45 4E 4E 4D 87 12 9A 4E DE 4D
-D0 4F 2A 44 00 00 07 45 4E 44 43 4F 44 45 87 12
-BC 52 12 4F 2A 44 28 4D 03 41 53 4D 92 42 DA 1D
-EC 1D B2 40 78 52 DA 1D D9 3F F6 4F 06 45 4E 44
-41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00 05 43
-4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53
-C6 1D B2 43 BE 1D 30 40 BC 52 00 00 05 4C 4F 32
-48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A 44
-02 00 A2 52 C6 1D ED 3F 18 4E 85 48 49 32 4C 4F
-87 12 F2 46 9A 50 D6 4B DE 4D A2 52 74 52 2A 44
-6A 50 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
-A2 52 C6 1D BE 40 28 47 00 00 2E 53 30 4D AC 4F
-84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40
-24 47 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D 1C 49
-84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D
-E2 4F 85 42 45 47 49 4E 30 40 F2 46 C0 50 85 55
-4E 54 49 4C 39 40 28 47 A2 52 C6 1D 1A 42 C6 1D
-8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D 08 50 85 41
-47 41 49 4E 39 40 24 47 EF 3F 42 4F 85 57 48 49
-4C 45 87 12 86 50 78 44 2A 44 30 4E 86 52 45 50
-45 41 54 00 87 12 04 51 C6 50 2A 44 A0 50 82 44
-4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D
-BE 40 3C 47 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
-00 00 30 4D E8 4B 84 4C 4F 4F 50 00 39 40 5E 47
-A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
-1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A
-00 00 F6 3F 3E 4F 30 4D 98 47 85 2B 4C 4F 4F 50
-39 40 4C 47 E5 3F 56 51 85 4C 45 41 56 45 1A 42
-C6 1D BA 40 6E 47 00 00 BA 40 24 47 02 00 B2 50
-06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C 89 4A
-00 00 30 4D 98 51 04 4D 4F 56 45 00 0A 4E 38 4F
-39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49
-00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 0C 51 0A 56
-4F 43 41 42 55 4C 41 52 59 00 87 12 80 4F 34 44
-10 00 34 44 00 00 3C 47 34 44 00 00 D6 4B 5E 47
-18 52 F2 46 34 44 C8 1D 44 44 F2 44 D6 4B FA 44
-98 4F 34 44 CA 1D FA 44 2A 44 BC 4D 05 46 4F 52
-54 48 84 12 32 52 9C 52 DE 55 DA 52 3C 52 82 50
-8A 51 06 54 CC 52 9C 54 0C 57 DE 50 4E 55 00 00
-DA 53 E6 4D BA 4F 00 00 FE 50 09 41 53 53 45 4D
-42 4C 45 52 84 12 32 52 FE 62 96 62 FA 61 8C 5D
-34 5C B0 5D C2 60 00 00 24 64 36 64 8C 5C CA 5C
-CA 62 00 00 00 00 BE 5D 66 52 6A 52 04 41 4C 53
-4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F
-4A 4E 08 50 52 45 56 49 4F 55 53 00 3A 40 0E 00
-39 40 CC 1D 38 40 CA 1D 8A 3F AC 49 04 4F 4E 4C
-59 00 82 43 CC 1D 30 4D 2E 51 0B 44 45 46 49 4E
-49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D D2 50
-07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53
-F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D
-C8 4E 86 5B 54 48 45 4E 5D 00 30 4D 22 53 86 5B
-45 4C 53 45 5D 00 87 12 34 44 00 00 36 45 B0 45
-C4 49 2A 4C 44 44 28 47 9C 53 8A 44 8A 44 60 49
-06 5B 54 48 45 4E 5D 00 F8 52 32 47 6A 53 44 49
-40 45 54 44 32 47 3E 53 2A 44 8A 44 8A 44 60 49
-06 5B 45 4C 53 45 5D 00 F8 52 32 47 8A 53 44 49
-40 45 54 44 32 47 3C 53 2A 44 60 49 04 5B 49 46
-5D 00 F8 52 32 47 3E 53 24 47 3C 53 44 49 60 49
-05 0D 0A 6B 6F 20 22 49 A0 48 38 4C 24 47 3E 53
-2E 53 84 5B 49 46 5D 00 0E 93 3E 4F BC 27 30 4D
-B2 53 89 5B 44 45 46 49 4E 45 44 5D 87 12 B0 45
-C4 49 1C 4A 6C 44 2A 44 C2 53 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 87 12 B0 45 C4 49 1C 4A 6C 44
-64 45 2A 44 F6 53 3D 41 B2 4E 0E 18 A2 4E 0C 18
-3E 4F 44 3C C6 51 06 4D 41 52 4B 45 52 00 B0 12
-CE 4E BA 40 84 12 FC FF BA 40 F4 53 FE FF 9A 42
-C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40
-18 4F 42 52 D2 52 E6 52 3A 54 3A 4E 82 4A C8 1D
-2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83
-18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23
-2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D B2 52 09 50
-57 52 5F 53 54 41 54 45 84 12 32 54 98 52 6C 64
-1C 51 09 52 53 54 5F 53 54 41 54 45 92 42 0E 18
-7C 54 92 42 0C 18 7E 54 EF 3F 6E 54 08 50 57 52
-5F 48 45 52 45 00 92 42 C8 1D 7C 54 92 42 C6 1D
-7E 54 30 4D 82 54 08 52 53 54 5F 48 45 52 45 00
-92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F FE 51
-04 57 49 50 45 00 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B2 40 2A 48 28 48 B2 40 58 55 56 55 B2 40
-98 52 0E 18 B2 40 6C 64 0C 18 30 12 8C 54 B2 40
-90 48 8E 48 B2 40 54 49 52 49 B2 40 A0 47 9E 47
-B2 40 CC 47 CA 47 B2 40 3C 1D 9E 48 B2 40 18 00
-0A 18 37 40 1A 44 36 40 BC 44 35 40 0E 44 34 40
-00 44 39 40 10 00 29 83 89 43 E0 1D FC 23 B2 40
-0A 00 DC 1D B2 40 20 00 B4 1D 30 41 D0 54 04 57
-41 52 4D 00 30 40 58 55 3D 40 8E 55 92 C3 30 01
-1E 42 08 18 0E 93 12 24 F2 B0 10 00 20 02 02 20
-3E E3 1E 53 F2 D0 30 00 2A 02 3E 90 0A 00 AB 27
-3E 90 16 00 A8 2F 2E 93 77 27 80 2F 30 4D 60 49
-06 0D 1B 5B 37 6D 23 00 22 49 E2 46 60 49 1F 46
-61 73 74 46 6F 72 74 68 20 56 33 30 30 20 28 43
-29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 20 22 49
-34 44 80 FF F2 46 28 45 D2 46 60 49 0B 62 79 74
-65 73 20 66 72 65 65 20 24 47 98 4D F0 52 04 43
-4F 4C 44 00 92 B3 EA 05 FD 23 B2 40 04 A5 20 01
-B2 40 88 5A 5C 01 92 43 04 02 B2 40 FE FF 02 02
-A2 83 06 02 B2 43 26 02 B2 43 22 02 D2 D3 24 02
-B2 43 42 02 B2 43 46 02 B2 43 62 02 B2 43 66 02
-B2 40 80 00 84 02 B2 40 7F FF 82 02 B2 40 7F FF
-86 02 F2 43 22 03 F2 43 26 03 F2 40 A5 00 61 01
-B2 40 06 00 62 01 82 43 66 01 39 40 40 00 B2 40
-33 00 64 01 D2 43 61 01 92 D2 9E 01 08 18 38 40
-59 14 18 83 FE 23 19 83 FA 23 B2 42 B0 01 F2 D0
-10 00 2A 03 F2 C0 40 00 A2 04 39 40 00 08 29 83
-89 43 00 1C FC 23 39 40 3A 00 29 83 B9 40 F0 55
-C6 FF FB 23 B2 40 30 48 E4 FF B2 40 81 00 E0 05
-92 42 02 18 E6 05 92 42 04 18 E8 05 92 C3 E0 05
-92 D3 FA 05 3F 40 80 1C 31 40 E0 1C 30 12 54 55
-2D 3F 38 40 C0 1D 39 48 2A 48 09 5A 1A 52 C4 1D
-09 9A 03 24 7E 9A FC 27 1A 83 0E 4A 2A 88 82 4A
-C4 1D 30 4D B6 54 09 32 43 4F 4E 53 54 41 4E 54
-87 12 80 4F D6 4B D6 4B 98 4F FC 56 2F 83 9F 4E
-02 00 00 00 2E 4E 3D 41 30 4D E6 56 09 32 56 41
-52 49 41 42 4C 45 87 12 80 4F 34 44 04 00 06 47
-98 4F 2A 44 1C 15 B0 12 2A 44 C4 49 1C 4A 32 47
-3A 57 D8 4A 28 47 CC 4D 72 57 3C 57 29 4E 39 90
-86 12 02 20 2E 53 15 3C 39 90 85 12 03 20 1E 4E
-02 00 0F 3C 39 90 84 12 0C 20 2E 52 B9 90 FA 56
-02 00 04 24 B9 90 22 57 02 00 03 20 B0 12 FC 56
-72 57 1B 17 30 41 32 B0 00 02 01 24 3E 4F 30 41
-3E 40 28 00 B0 12 24 57 B0 12 76 57 19 42 C6 1D
-A2 53 C6 1D 89 4E 00 00 3E 40 29 00 1C 15 12 12
-C4 1D 92 53 C4 1D B0 12 2A 44 C4 49 D8 4A 28 47
-BE 57 B4 57 21 53 3E 90 10 00 87 2D DA 2B C0 57
-B2 41 C4 1D D6 3F 87 12 B0 45 C2 56 CE 57 0C 43
-1B 42 C6 1D A2 53 C6 1D 6A 4E 3E 4F 7A 90 23 00
-2F 20 92 53 C4 1D B0 12 24 57 B0 12 76 57 0E 93
-03 20 3C 40 00 03 21 3C 1E 93 03 20 3C 40 10 03
-1C 3C 2E 93 03 20 3C 40 20 03 17 3C 2E 92 03 20
-3C 40 20 02 12 3C 3E 92 03 20 3C 40 30 02 0D 3C
-3E 93 03 20 3C 40 30 03 08 3C 3C 40 30 00 19 42
-C6 1D A2 53 C6 1D 89 4E 00 00 3E 4F 3D 41 30 4D
-7A 90 26 00 09 20 3C 40 10 02 92 53 C4 1D B0 12
-24 57 B0 12 76 57 EB 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 1D B0 12 9C 57 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 9C 57 92 92 C0 1D C4 1D 02 24
-92 53 C4 1D 8E 10 0C 5E D8 3F B0 12 9C 57 FA 23
-3C 50 10 00 B0 12 80 57 EF 3F 0C 43 1B 42 C6 1D
-A2 53 C6 1D 87 12 B0 45 C2 56 AC 58 FE 90 26 00
-00 00 3E 40 20 00 03 20 3C 50 82 00 C6 3F B0 12
-9C 57 E1 23 3C 50 80 00 B0 12 80 57 DC 3F 20 48
-04 52 45 54 49 00 87 12 34 44 00 13 D6 4B 2A 44
-34 44 2C 00 C6 57 A4 58 EA 58 2E 4E 0E DC 09 4B
-A2 3F 4C 50 03 4D 4F 56 84 12 E0 58 00 40 F4 58
-05 4D 4F 56 2E 42 84 12 E0 58 40 40 00 00 03 41
-44 44 84 12 E0 58 00 50 0E 59 05 41 44 44 2E 42
-84 12 E0 58 40 50 1A 59 04 41 44 44 43 00 84 12
-E0 58 00 60 28 59 06 41 44 44 43 2E 42 00 84 12
-E0 58 40 60 D0 58 04 53 55 42 43 00 84 12 E0 58
-00 70 46 59 06 53 55 42 43 2E 42 00 84 12 E0 58
-40 70 54 59 03 53 55 42 84 12 E0 58 00 80 64 59
-05 53 55 42 2E 42 84 12 E0 58 40 80 2E 50 03 43
-4D 50 84 12 E0 58 00 90 7E 59 05 43 4D 50 2E 42
-84 12 E0 58 40 90 1C 50 04 44 41 44 44 00 84 12
-E0 58 00 A0 98 59 06 44 41 44 44 2E 42 00 84 12
-E0 58 40 A0 8A 59 03 42 49 54 84 12 E0 58 00 B0
-B6 59 05 42 49 54 2E 42 84 12 E0 58 40 B0 C2 59
-03 42 49 43 84 12 E0 58 00 C0 D0 59 05 42 49 43
-2E 42 84 12 E0 58 40 C0 DC 59 03 42 49 53 84 12
-E0 58 00 D0 EA 59 05 42 49 53 2E 42 84 12 E0 58
-40 D0 00 00 03 58 4F 52 84 12 E0 58 00 E0 04 5A
-05 58 4F 52 2E 42 84 12 E0 58 40 E0 36 59 03 41
-4E 44 84 12 E0 58 00 F0 1E 5A 05 41 4E 44 2E 42
-84 12 E0 58 40 F0 B0 45 C6 57 3C 5A 0A 4C 3C F0
-70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 70 59 03 52
-52 43 84 12 36 5A 00 10 4E 5A 05 52 52 43 2E 42
-84 12 36 5A 40 10 5A 5A 04 53 57 50 42 00 84 12
-36 5A 80 10 68 5A 03 52 52 41 84 12 36 5A 00 11
-76 5A 05 52 52 41 2E 42 84 12 36 5A 40 11 82 5A
-03 53 58 54 84 12 36 5A 80 11 00 00 04 50 55 53
-48 00 84 12 36 5A 00 12 9C 5A 06 50 55 53 48 2E
-42 00 84 12 36 5A 40 12 F6 59 04 43 41 4C 4C 00
-84 12 36 5A 80 12 1A 53 0E 4A 87 12 E2 46 60 49
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 48 4D
-B0 45 C2 56 E6 5A 92 53 C4 1D 3E 40 2C 00 B0 12
-2A 44 C4 49 D8 4A 28 47 CC 4D 9A 58 FE 5A 0A 4E
-3E 4F 1A 83 E0 33 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 D5 2F 5A 0E 94 3F
-2A 92 D1 2F 8A 10 5A 06 8F 3F 90 5A 06 52 52 43
-4D 2E 41 00 84 12 E0 5A 40 00 2C 5B 04 52 52 43
-4D 00 84 12 E0 5A 50 00 3C 5B 06 52 52 41 4D 2E
-41 00 84 12 E0 5A 40 01 4A 5B 04 52 52 41 4D 00
-84 12 E0 5A 50 01 5A 5B 06 52 4C 41 4D 2E 41 00
-84 12 E0 5A 40 02 68 5B 04 52 4C 41 4D 00 84 12
-E0 5A 50 02 78 5B 06 52 52 55 4D 2E 41 00 84 12
-E0 5A 40 03 86 5B 04 52 52 55 4D 00 84 12 E0 5A
-50 03 AA 5A 07 50 55 53 48 4D 2E 41 84 12 E0 5A
-00 14 A4 5B 05 50 55 53 48 4D 84 12 E0 5A 00 15
-B4 5B 06 50 4F 50 4D 2E 41 00 84 12 E0 5A 00 16
-C2 5B 04 50 4F 50 4D 00 84 12 E0 5A 00 17 85 12
-00 3C 96 5B 03 53 3E 3D 85 12 00 38 E4 5B 02 53
-3C 00 85 12 00 34 D2 5B 03 30 3E 3D 85 12 00 30
-F8 5B 02 30 3C 00 85 12 00 30 00 00 02 55 3C 00
-85 12 00 2C 0C 5C 03 55 3E 3D 85 12 00 28 02 5C
-03 30 3C 3E 85 12 00 24 20 5C 02 30 3D 00 85 12
-00 20 00 00 02 49 46 00 1A 42 C6 1D 8A 4E 00 00
-A2 53 C6 1D 0E 4A 30 4D 16 5C 04 54 48 45 4E 00
-1A 42 C6 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11
-3A 90 00 02 31 2F 88 DA 00 00 30 4D A6 59 04 45
-4C 53 45 00 1A 42 C6 1D BA 40 00 3C 00 00 A2 53
-C6 1D 2F 83 8F 4A 00 00 E3 3F 4A 5C 05 55 4E 54
-49 4C 3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83 0A 89
-0A 11 3A 90 00 FE 10 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 1D 30 4D 2A 5A 05 41 47 41 49 4E
-87 12 DE 5B 92 5C 2A 44 00 00 05 57 48 49 4C 45
-87 12 38 5C 78 44 2A 44 EE 5B 06 52 45 50 45 41
-54 00 87 12 DE 5B 92 5C 50 5C 2A 44 EE 5C 3D 41
-2E 4E 08 4E 3E 4F 2A 48 0A 93 88 43 00 00 CA 23
-98 42 C6 1D 00 00 30 4D BA 5A 03 42 57 31 84 12
-EC 5C E0 1D 0A 5D 03 42 57 32 84 12 EC 5C E2 1D
-16 5D 03 42 57 33 84 12 EC 5C E4 1D 2E 5D 3D 41
-1A 42 C6 1D 2E 4E 28 4E 08 93 8E 43 00 00 8B 23
-BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D
-00 00 03 46 57 31 84 12 2C 5D E6 1D 52 5D 03 46
-57 32 84 12 2C 5D E8 1D 5E 5D 03 46 57 33 84 12
-2C 5D EA 1D 3E 90 00 30 07 24 3E E0 00 04 3E B0
-00 10 02 24 3E E0 00 08 30 4D 6A 5D 04 47 4F 54
-4F 00 87 12 DE 5B BE 4D CC 4B 2A 44 00 00 05 3F
-47 4F 54 4F 87 12 74 5D BE 4D CC 4B 2A 44 00 00
-03 4A 4D 50 87 12 BE 4D C0 5C 2A 44 9E 5D 04 3F
-4A 4D 50 00 87 12 74 5D BE 4D 78 44 92 5C 2A 44
-87 12 B0 45 C2 56 D8 5D 69 4E 3E 4F 3C 4F 2C 4C
-1B 42 C6 1D A2 53 C6 1D 79 90 52 00 0A 20 B0 12
-9C 57 5E 0E 5E 0E 0E DC 8B 4E 00 00 0E 4B 3D 41
-30 4D 79 90 23 00 0D 20 3C C0 40 00 92 53 C4 1D
-A2 53 C6 1D B0 12 24 57 BB 4F 02 00 3E F0 0F 00
-E8 3F 79 90 26 00 03 20 3C E0 E0 00 EF 3F 3C C0
-F0 00 79 90 40 00 12 20 92 53 C4 1D B0 12 9C 57
-D8 23 3C D0 10 00 3E 40 2B 00 B0 12 9C 57 92 92
-C0 1D C4 1D CE 27 92 53 C4 1D CB 3F 3C D0 30 00
-A2 53 C6 1D 3E 40 28 00 B0 12 24 57 BB 4F 02 00
-3E 40 29 00 EA 3F 87 12 B0 45 C2 56 7E 5E 3B 4F
-2C 4B 69 4E 7E 40 20 00 79 90 52 00 03 20 B0 12
-9C 57 B1 3F 3C C0 F0 00 A2 53 C6 1D 79 90 26 00
-09 20 3C D0 60 00 92 53 C4 1D B0 12 24 57 BB 4F
-02 00 A1 3F 3C D0 70 00 3E 40 28 00 B0 12 24 57
-BB 4F 02 00 3E 40 29 00 E2 3F 34 44 2C 00 D0 5D
-76 5E 62 44 2A 44 00 59 04 4D 4F 56 41 00 84 12
-CA 5E C0 00 22 5D 04 43 4D 50 41 00 84 12 CA 5E
-D0 00 BA 5C 04 41 44 44 41 00 84 12 CA 5E E0 00
-DA 5C 04 53 55 42 41 00 84 12 CA 5E F0 00 E6 5E
-05 43 41 4C 4C 41 87 12 B0 45 C2 56 1E 5F 1B 42
-C6 1D A2 53 C6 1D 6E 4E 3C 40 34 01 7E 90 52 00
-0B 20 7E 40 20 00 B0 12 9C 57 5C 0E 0C DE 8B 4C
-00 00 3E 4F 3D 41 30 4D 2C 53 7E 90 40 00 0B 20
-92 53 C4 1D 7E 40 20 00 B0 12 9C 57 EE 23 1C 53
-3E 40 2B 00 E8 3F A2 53 C6 1D 7E 90 23 00 09 20
-3C 40 3B 01 92 53 C4 1D B0 12 24 57 BB 4F 02 00
-DC 3F 7E 90 26 00 02 20 2C 53 F4 3F 7E 40 28 00
-1C 83 B0 12 24 57 BB 4F 02 00 3E 40 29 00 CB 3F
-87 12 B0 45 C2 56 A8 5F 69 4E 3E 4F 3C 40 00 18
-79 90 52 00 05 20 B0 12 9C 57 0E 4C 3D 41 30 4D
-82 43 EE 1D 79 90 23 00 0B 20 92 53 C4 1D B0 12
-24 57 2F 53 3E F0 0F 00 5E 0A 5E 0E 0C DE ED 3F
-79 90 26 00 F2 27 79 90 40 00 12 20 92 53 C4 1D
-B0 12 9C 57 E2 23 3E 40 2B 00 92 53 C4 1D B0 12
-9C 57 92 92 C0 1D C4 1D D8 27 92 53 C4 1D D5 3F
-3E 40 28 00 B0 12 24 57 8F 4E 00 00 3E 40 29 00
-B0 12 9C 57 3E 4F 3E F0 0F 00 0C DE EA 3F 87 12
-B0 45 C2 56 36 60 3C 4F 69 4E 3E 40 20 00 79 90
-52 00 BB 27 82 43 EE 1D 79 90 26 00 08 20 92 53
-C4 1D B0 12 24 57 2F 53 3E F0 0F 00 BF 3F 3E 40
-28 00 B0 12 24 57 F7 3F 1B 42 C6 1D A2 53 C6 1D
-0C 4E 3E 4F 1C D2 EE 1D 82 43 EE 1D 3C DE 8B 4C
-00 00 B2 41 C4 1D 30 4D 34 44 C4 1D F2 44 B0 44
-34 44 2C 00 A0 5F 2E 60 68 60 24 47 E0 58 D8 5E
-04 4D 4F 56 58 00 84 12 88 60 40 00 00 40 A0 60
-06 4D 4F 56 58 2E 41 00 84 12 88 60 00 00 40 40
-B0 60 06 4D 4F 56 58 2E 42 00 84 12 88 60 40 00
-40 40 F4 5E 04 41 44 44 58 00 84 12 88 60 40 00
-00 50 D4 60 06 41 44 44 58 2E 41 00 84 12 88 60
-00 00 40 50 E4 60 06 41 44 44 58 2E 42 00 84 12
-88 60 40 00 40 50 F6 60 05 41 44 44 43 58 84 12
-88 60 40 00 00 60 08 61 07 41 44 44 43 58 2E 41
-84 12 88 60 00 00 40 60 18 61 07 41 44 44 43 58
-2E 42 84 12 88 60 40 00 40 60 02 5F 05 53 55 42
-43 58 84 12 88 60 40 00 00 70 3C 61 07 53 55 42
-43 58 2E 41 84 12 88 60 00 00 40 70 4C 61 07 53
-55 42 43 58 2E 42 84 12 88 60 40 00 40 70 5E 61
-04 53 55 42 58 00 84 12 88 60 40 00 00 80 70 61
-06 53 55 42 58 2E 41 00 84 12 88 60 00 00 40 80
-80 61 06 53 55 42 58 2E 42 00 84 12 88 60 40 00
-40 80 10 5F 04 43 4D 50 58 00 84 12 88 60 40 00
-00 90 A4 61 06 43 4D 50 58 2E 41 00 84 12 88 60
-00 00 40 90 B4 61 06 43 4D 50 58 2E 42 00 84 12
-88 60 40 00 40 90 6E 5C 05 44 41 44 44 58 84 12
-88 60 40 00 00 A0 D8 61 07 44 41 44 44 58 2E 41
-84 12 88 60 00 00 40 A0 E8 61 07 44 41 44 44 58
-2E 42 84 12 88 60 40 00 40 A0 C6 61 04 42 49 54
-58 00 84 12 88 60 40 00 00 B0 0C 62 06 42 49 54
-58 2E 41 00 84 12 88 60 00 00 40 B0 1C 62 06 42
-49 54 58 2E 42 00 84 12 88 60 40 00 40 B0 2E 62
-04 42 49 43 58 00 84 12 88 60 40 00 00 C0 40 62
-06 42 49 43 58 2E 41 00 84 12 88 60 00 00 40 C0
-50 62 06 42 49 43 58 2E 42 00 84 12 88 60 40 00
-40 C0 62 62 04 42 49 53 58 00 84 12 88 60 40 00
-00 D0 74 62 06 42 49 53 58 2E 41 00 84 12 88 60
-00 00 40 D0 84 62 06 42 49 53 58 2E 42 00 84 12
-88 60 40 00 40 D0 10 5A 04 58 4F 52 58 00 84 12
-88 60 40 00 00 E0 A8 62 06 58 4F 52 58 2E 41 00
-84 12 88 60 00 00 40 E0 B8 62 06 58 4F 52 58 2E
-42 00 84 12 88 60 40 00 40 E0 2A 61 04 41 4E 44
-58 00 84 12 88 60 40 00 00 F0 DC 62 06 41 4E 44
-58 2E 41 00 84 12 88 60 00 00 40 F0 EC 62 06 41
-4E 44 58 2E 42 00 84 12 88 60 40 00 40 F0 34 44
-C4 1D F2 44 B0 44 B0 45 A0 5F 68 60 24 47 36 5A
-92 61 04 52 52 43 58 00 84 12 0E 63 40 00 00 10
-22 63 06 52 52 43 58 2E 41 00 84 12 0E 63 00 00
-40 10 32 63 06 52 52 43 58 2E 42 00 84 12 0E 63
-40 00 40 10 44 63 04 52 52 55 58 00 84 12 0E 63
-40 01 00 10 56 63 06 52 52 55 58 2E 41 00 84 12
-0E 63 00 01 40 10 66 63 06 52 52 55 58 2E 42 00
-84 12 0E 63 40 01 40 10 78 63 05 53 57 50 42 58
-84 12 0E 63 40 00 80 10 8A 63 07 53 57 50 42 58
-2E 41 84 12 0E 63 00 00 80 10 9A 63 04 52 52 41
-58 00 84 12 0E 63 40 00 00 11 AC 63 06 52 52 41
-58 2E 41 00 84 12 0E 63 00 00 40 11 BC 63 06 52
-52 41 58 2E 42 00 84 12 0E 63 40 00 40 11 CE 63
-04 53 58 54 58 00 84 12 0E 63 40 00 80 11 E0 63
-06 53 58 54 58 2E 41 00 84 12 0E 63 00 00 80 11
-2A 5C 05 50 55 53 48 58 84 12 0E 63 40 00 00 12
-02 64 07 50 55 53 48 58 2E 41 84 12 0E 63 00 00
-40 12 12 64 07 50 55 53 48 58 2E 42 84 12 0E 63
-40 00 40 12 F0 63 03 52 50 54 87 12 B0 45 C2 56
-42 64 29 4E 7E 40 20 00 79 90 52 00 06 20 B0 12
-9C 57 03 24 3E D0 80 00 04 3C B0 12 24 57 3E F0
-0F 00 82 4E EE 1D 3E 4F 3D 41 30 4D
-@FFFE
-F0 55
-q
index b8ac2bb..886891e 100644 (file)
 @1800
-10 00 04 00 51 55 40 1F 05 00 18 00 66 64 98 52
-2C 01 7F B0 00 48 12 48
+10 00 04 00 51 55 40 1F 05 00 18 00 94 61 D4 50
+2D 01 6F B0 B6 46 C8 46
 @4400
 2F 83 8F 4E 00 00 3E 41 0D 12 3D 4E 30 4D 2F 83
 8F 4E 00 00 3E 41 2E 4E 30 4D 3A 41 0D 12 0D 4A
-30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 00 00
-03 4C 49 54 2F 83 8F 4E 00 00 3E 4D 30 4D 24 44
-03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 3F
-44 55 50 00 0E 93 F6 23 30 4D 40 44 04 44 52 4F
-50 00 3E 4F 30 4D 00 00 03 4E 49 50 2F 53 30 4D
-00 00 04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A
-30 4D 68 44 04 4F 56 45 52 00 8F 4E FE FF 2E 4F
-2F 83 30 4D 72 44 03 52 4F 54 2A 4F 8F 4E 00 00
-1E 4F 02 00 8F 4A 02 00 30 4D 4E 44 02 3E 52 00
-0E 12 3E 4F 30 4D 96 44 02 52 3E 00 2F 83 8F 4E
-00 00 3E 41 30 4D B8 44 02 52 40 00 2F 83 8F 4E
-00 00 2E 41 30 4D 5C 44 05 44 45 50 54 48 8F 4E
-FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83 30 4D 00 00
-01 40 2E 4E 30 4D F0 44 01 21 BE 4F 00 00 3E 4F
-30 4D 00 00 02 43 40 00 6E 4E 30 4D 04 45 02 43
-21 00 FE 4F 00 00 1F 53 3E 4F 30 4D 00 00 01 2B
-3E 5F 30 4D 30 44 01 2D 3E 8F 3E E3 1E 53 30 4D
-00 00 02 31 2B 00 1E 53 30 4D 32 45 02 31 2D 00
-1E 83 30 4D D8 44 04 44 41 42 53 00 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 30 4D 3C 45
-02 30 3D 00 1E 83 0E 7E 30 4D 60 45 02 30 3C 00
-0E 5E 0E 7E 3E E3 30 4D 00 00 01 3D 3E 8F 08 24
-0E 43 30 4D 00 00 02 55 3C 00 3A 4F 0A 8E F8 2F
-3E 43 30 4D 7A 45 01 3C 3A 4F 0A 8E F9 3B F0 37
-AC 44 01 3E 3E 8F F4 3B EB 37 0E 45 02 42 4C 00
-85 12 20 00 AC 45 04 42 41 53 45 00 85 12 DC 1D
-C8 44 05 53 54 41 54 45 85 12 BE 1D 96 45 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 86 45 06 55 4D 2F
-4D 4F 44 00 30 12 62 44 0B 4E 1C 4F 02 00 2E 4F
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-00 44 8F 4A 02 00 8F 49 00 00 0E 48 30 41 B6 45
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 F0 45 BF 4F
-00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 30 46
-02 23 53 00 87 12 32 46 6A 46 2D 83 09 93 E3 23
-0E 93 E1 23 3D 41 30 4D 60 46 02 23 3E 00 9F 42
-B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 04 48
-4F 4C 44 00 0A 4E 3E 4F DB 3F C2 45 04 53 49 47
-4E 00 0E 93 3E 4F 3A 40 2D 00 D2 33 30 4D 46 45
-02 44 2E 00 87 12 D2 45 44 44 B0 44 4C 45 64 46
-BC 44 A2 46 7E 46 22 49 EA 48 2A 44 DC 45 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EB 3F 84 44
-01 2E 0E 93 F6 37 38 43 F5 3F 8E 46 04 48 45 52
-45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D F8 44
-05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D 7A 46
-02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53 C6 1D
-3E 4F 30 4D 2D 4D 30 4D 0E 93 3E 4F FB 27 2D 53
-30 4D 0E 93 3E 4F F6 23 2D 53 30 4D 39 40 00 80
-39 8F 08 4E 3E 4F 08 59 19 15 30 4D 81 5E 00 00
-3E 4F 32 B0 00 01 E6 27 2D 53 21 52 30 4D 91 53
-00 00 F7 3F CE 46 06 55 4E 4C 4F 4F 50 00 F5 3F
-EC 46 01 49 2F 83 8F 4E 00 00 2E 41 1E 81 02 00
-30 4D 1E 45 01 4A 2F 83 8F 4E 00 00 1E 41 04 00
-1E 81 06 00 30 4D 84 47 03 4B 45 59 30 40 A0 47
-18 42 EC 05 2F 83 8F 4E 00 00 B0 12 00 48 92 B3
-FC 05 FD 27 1E 42 EC 05 B0 12 12 48 30 4D 00 47
-06 41 43 43 45 50 54 00 30 40 CC 47 3C 40 6E 48
-3B 40 38 48 2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00
-3C 40 20 00 3D 40 62 48 92 B3 FC 05 05 24 18 42
-EC 05 38 90 0A 00 04 20 21 53 39 40 26 48 4D 15
-A2 B3 FC 05 FD 27 B2 40 11 00 EE 05 D2 C3 22 02
-30 41 B2 40 13 00 EE 05 D2 D3 22 02 30 41 00 00
-05 53 4C 45 45 50 30 40 2A 48 12 D2 0A 18 FB 3F
-21 52 3A 17 58 42 EC 05 48 9C 08 2C 48 9B E9 27
-78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24
-CE 48 00 00 1E 53 A2 B3 FC 05 FD 27 82 48 EE 05
-30 4D 64 48 2D 83 92 B3 FC 05 E4 23 FC 27 82 93
-DE 1D 02 24 92 53 DE 1D 3E 8F 3D 41 B2 40 18 00
-0A 18 30 4D B0 46 04 45 4D 49 54 00 30 40 90 48
-08 4E 3E 4F E0 3F 10 47 03 43 49 42 85 12 3C 1D
-3F 80 06 00 8F 4E 04 00 3E 40 54 00 9F 42 9E 48
-00 00 AF 4F 02 00 88 3F 86 48 04 45 43 48 4F 00
-B2 40 82 48 5C 48 82 43 DE 1D 30 4D E0 46 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 5C 48 92 43 DE 1D
-30 4D 9C 46 05 53 50 41 43 45 2F 83 8F 4E 00 00
-3E 40 20 00 CB 3F E4 48 06 53 50 41 43 45 53 00
-0E 93 09 24 0D 12 3D 40 0C 49 EF 3F 0E 49 2D 83
-1E 83 EB 23 3D 41 3E 4F 30 4D 66 47 04 54 59 50
-45 00 0E 93 0F 24 1E 15 3D 40 38 49 28 4F 7E 48
-8F 48 00 00 2F 83 AA 3F 3A 49 2D 83 91 83 02 00
-F5 23 1D 17 2F 53 3E 4F 30 4D 98 48 02 43 52 00
-30 40 54 49 87 12 60 49 02 0D 0A 00 22 49 2A 44
-2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
-0D 63 30 4D F8 48 82 53 22 00 82 43 B4 1D 87 12
-34 44 60 49 D6 4B 34 44 22 00 C4 49 8E 49 3D 41
-B2 40 20 00 B4 1D 6E 4E 1E 83 82 5E C6 1D 3E 4F
-92 B3 C6 1D A2 63 C6 1D 30 4D CE 48 82 2E 22 00
-87 12 7A 49 34 44 22 49 D6 4B 2A 44 00 00 04 57
-4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A 3A 5C
-28 4C 09 9A 19 24 7E 9A FC 27 1A 83 3B 40 60 00
-C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24 18 53
-4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D F0 3F
-1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E CE 48
-00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83 0C 4E
-65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93 1E 24
-58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E FE FF
-0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23 0A 4C
-FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
-0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C 00 00
-35 40 0E 44 34 40 00 44 30 4D A2 45 07 3E 4E 55
-4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42 DC 1D
-6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80 07 00
-7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49 D0 04
-82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42 E6 04
-09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00 8F 48
-02 00 8F 49 04 00 30 4D 1B 42 DC 1D 0C 43 2D 15
-3D 40 1E 4B 09 43 08 43 3F 82 8F 4E 06 00 0C 4E
-7E 4C 6A 4C 7A 90 2D 00 04 28 CB 23 B1 43 02 00
-E1 3F 2B 43 7A 80 25 00 07 24 3B 52 6A 53 04 24
-3B 40 10 00 5A 83 BC 23 1C 53 1E 83 EA 3F 20 4B
-2F 24 2D 83 7A 90 28 00 CD 27 32 D0 00 02 7A 90
-F7 00 C8 27 7A 90 F5 00 23 20 0A 4E 09 43 8F 49
-02 00 5A 83 09 4A 09 5C 69 49 79 80 30 00 79 90
-0A 00 05 28 79 80 07 00 79 90 0A 00 0A 28 09 9B
-08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 E8 45 2A 17
-E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 0E 4A 4E 93
-2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02 3F 50
-06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00 BF 4F
-00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3 00 00
-9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20 2F 53
-30 4D BA 48 07 45 58 45 43 55 54 45 0A 4E 3E 4F
-00 4A 26 45 01 2C 1A 42 C6 1D A2 53 C6 1D 8A 4E
-00 00 3E 4F 30 4D D4 4B 87 4C 49 54 45 52 41 4C
-82 93 BE 1D 0C 24 1A 42 C6 1D A2 52 C6 1D BA 40
-34 44 00 00 8A 4E 02 00 3E 4F 32 B0 00 02 32 C0
-00 02 06 24 19 4A 02 00 8A 4E 02 00 0E 49 EB 3F
-30 4D 4C 49 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 82 4E C0 1D B2 4F C2 1D
-3E 4F 82 43 C4 1D 30 4D 87 12 38 4C B0 45 C4 49
-52 4C 3D 40 5A 4C E2 22 5D 3E 5C 4C 0A 4E 3E 4F
-3D 40 72 4C 39 27 3D 40 4C 4C 1A E2 BE 1D B3 27
-AD 23 74 4C 3E 4F 3D 40 4C 4C BA 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 3E 4F CD 3F
-C4 4B 08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D
-3C 49 3B 49 3A 49 3D 15 B0 12 2A 44 48 4C B0 4C
-B2 41 C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D
-6C 45 04 51 55 49 54 00 82 43 08 18 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44 50 49
-A0 48 EA 48 48 4C DE 44 70 45 60 49 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 3C 4D 34 44 30 FF
-F2 46 8A 45 60 49 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 3C 4D 24 47 DE 4C C0 47 05 41 42 4F 52 54
-3F 40 80 1C D1 3F 1A 4D 86 41 42 4F 52 54 22 00
-87 12 7A 49 34 44 3C 4D D6 4B 2A 44 8F 93 02 00
-03 20 2F 52 3E 4F 30 4D B0 12 FE 54 B0 12 00 48
-92 C3 FC 05 38 40 50 55 39 42 09 59 03 43 19 83
-FD 23 18 83 F9 23 92 B3 FC 05 F2 23 87 12 78 54
-34 44 DE 1D F2 44 C0 48 60 49 04 1B 5B 37 6D 00
-22 49 54 44 28 47 98 4D 50 49 60 49 05 6C 69 6E
-65 3A 22 49 40 45 D2 46 22 49 60 49 04 1B 5B 30
-6D 00 22 49 20 4D 00 00 83 5B 27 5D 87 12 BE 4D
-34 44 34 44 D6 4B D6 4B 2A 44 16 4A 01 27 87 12
-B0 45 C4 49 1C 4A 28 47 CC 4D 2A 44 7C 4C CE 45
-81 5C 92 42 C0 1D C4 1D 30 4D A8 4D 81 5B 82 43
-BE 1D 30 4D D0 4D 01 5D B2 43 BE 1D 30 4D BE 4F
-02 00 3E 4F 30 4D 72 47 82 49 53 00 87 12 C8 45
-F2 44 28 47 10 4E AC 4D 34 44 EE 4D D6 4B 2A 44
-BE 4D EE 4D 2A 44 F8 4D 09 49 4D 4D 45 44 49 41
-54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D 76 49
-87 52 45 43 55 52 53 45 19 42 C6 1D 99 42 BA 1D
-00 00 A2 53 C6 1D 30 4D C2 4C 88 50 4F 53 54 50
-4F 4E 45 00 87 12 B0 45 C4 49 1C 4A 54 44 28 47
-CC 4D 70 45 28 47 74 4E 34 44 34 44 D6 4B D6 4B
-34 44 D6 4B D6 4B 2A 44 DC 4D 81 3B 82 93 BE 1D
-A8 27 87 12 34 44 2A 44 D6 4B 12 4F DE 4D 2A 44
-7A 4E 07 3A 4E 4F 4E 41 4D 45 2F 83 8F 4E 00 00
-1E 42 C6 1D 0A 4E 39 40 00 02 38 40 02 02 B0 12
-FE 4E BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D
-82 4F BC 1D 30 4D 92 4E 01 3A 30 12 B2 4E 87 12
-A0 49 B0 45 C4 49 D8 4E 3D 41 08 4E 7A 4E 5A D3
+30 4D 00 00 04 45 58 49 54 00 3D 41 30 4D 24 44
+03 44 55 50 2F 83 8F 4E 00 00 30 4D 00 00 04 32
+44 55 50 00 8F 4E FE FF AF 4F FC FF 2F 82 30 4D
+00 00 04 3F 44 55 50 00 0E 93 EC 23 30 4D 30 44
+04 44 52 4F 50 00 3E 4F 30 4D 2F 53 30 4D 3E 44
+04 53 57 41 50 00 2A 4F 8F 4E 00 00 0E 4A 30 4D
+52 44 02 3E 52 00 0E 12 3E 4F 30 4D 70 44 02 52
+3E 00 2F 83 8F 4E 00 00 3E 41 30 4D 60 44 05 44
+45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+2F 83 30 4D 00 00 01 2D 3E 8F 3E E3 1E 53 30 4D
+00 00 02 31 2B 00 1E 53 30 4D C2 44 02 31 2D 00
+1E 83 30 4D 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 30 4D 00 00 01 40 2E 4E 30 4D E8 44
+01 21 BE 4F 00 00 3E 4F 30 4D CC 44 02 30 3D 00
+1E 83 0E 7E 30 4D FC 44 02 30 3C 00 0E 5E 0E 7E
+3E E3 30 4D 00 00 01 3D 3E 8F FA 27 0E F3 30 4D
+00 00 02 55 3C 00 3E 8F F9 2B 01 24 3E 43 30 4D
+16 45 02 3C 23 00 B2 40 B2 1D B2 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 34 40 20 00 0E 93 04 20
+04 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 14 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 34 40 00 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 00 00 01 23 1B 42 DC 1D 2C 4F 2F 83
+B0 12 46 45 BF 4F 00 00 7A 90 0A 00 02 28 7A 50
+07 00 7A 50 30 00 92 83 B2 1D 18 42 B2 1D C8 4A
+00 00 30 4D 86 45 02 23 53 00 87 12 88 45 C0 45
+2D 83 09 93 E3 23 0E 93 E1 23 3D 41 30 4D B6 45
+02 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 04 48 4F 4C 44 00 0A 4E 3E 4F DB 3F
+8E 44 04 53 49 47 4E 00 0E 93 3E 4F 3A 40 2D 00
+D2 33 30 4D 87 12 36 45 34 44 86 44 D4 44 BA 45
+92 44 F8 45 D4 45 D6 47 42 4B 82 47 2A 44 22 45
+02 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 EA 3F
+00 00 01 2E 0E 93 F6 37 38 43 F5 3F 2D 4D 30 4D
+0E 93 3E 4F FB 27 2D 53 30 4D 0E 93 3E 4F F6 23
+2D 53 30 4D 39 40 00 80 39 8F 08 4E 3E 4F 08 59
+19 15 30 4D 81 5E 00 00 3E 4F 32 B0 00 01 E6 27
+2D 53 21 52 30 4D 91 53 00 00 F7 3F E4 45 01 49
+2F 83 8F 4E 00 00 2E 41 1E 81 02 00 30 4D 00 00
+03 4B 45 59 30 40 98 46 18 42 EC 05 2F 83 8F 4E
+00 00 B0 12 B6 46 92 B3 FC 05 FD 27 1E 42 EC 05
+B0 12 C8 46 30 4D A2 B3 FC 05 FD 27 B2 40 11 00
+EE 05 D2 C3 22 02 30 41 B2 40 13 00 EE 05 D2 D3
+22 02 30 41 00 00 05 53 4C 45 45 50 30 40 E0 46
+B0 12 B6 46 12 D2 0A 18 F9 3F F0 44 06 41 43 43
+45 50 54 00 3C 40 64 47 3B 40 2E 47 2D 15 0A 4E
+2E 4F 0A 5E 3B 40 0D 00 3C 40 20 00 3D 40 58 47
+92 B3 FC 05 05 24 18 42 EC 05 38 90 0A 00 CB 23
+21 53 3D 15 DB 3F 21 52 3A 17 58 42 EC 05 48 9C
+08 2C 48 9B C9 27 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 24 CE 48 00 00 1E 53 A2 B3 FC 05
+FD 27 82 48 EE 05 30 4D 5A 47 2D 83 92 B3 FC 05
+E4 23 FC 27 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F
+3D 41 B2 40 18 00 0A 18 30 4D 9E 44 04 45 4D 49
+54 00 30 40 86 47 08 4E 3E 4F E0 3F 3F 80 06 00
+8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
+02 00 A8 3F 7C 47 04 45 43 48 4F 00 B2 40 82 48
+52 47 82 43 DE 1D 30 4D 32 46 06 4E 4F 45 43 48
+4F 00 B2 40 30 4D 52 47 92 43 DE 1D 30 4D 20 46
+04 54 59 50 45 00 0E 93 0F 24 1E 15 3D 40 EC 47
+28 4F 7E 48 8F 48 00 00 2F 83 CB 3F EE 47 2D 83
+91 83 02 00 F5 23 1D 17 2F 53 3E 4F 30 4D D0 45
+02 43 52 00 30 40 08 48 87 12 1E 48 02 0D 0A 00
+D6 47 2A 44 2F 83 8F 4E 00 00 3E 4D 30 4D 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D F2 45 82 53 22 00 82 43 B4 1D 87 12 14 48
+1E 48 B0 4A 14 48 22 00 80 48 4C 48 B2 40 20 00
+B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3D 41 3E 4F
+30 4D BA 47 82 2E 22 00 87 12 38 48 14 48 D6 47
+B0 4A 2A 44 48 43 05 3C 00 00 04 57 4F 52 44 00
+48 4E 19 42 C0 1D 1A 42 C2 1D 09 5A 1A 52 C4 1D
+09 9A 03 24 7E 9A FC 27 1A 83 4E F8 06 20 0E 4A
+1A 82 C2 1D 82 4A C4 1D 30 4D 18 42 C6 1D 3B 40
+60 00 C8 4C 00 00 09 9A 0C 24 7C 4A 4E 9C 09 24
+18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 5C 82 B4 1D
+F0 3F 1A 82 C2 1D 82 4A C4 1D 1E 42 C6 1D 08 8E
+CE 48 00 00 30 4D 00 00 04 46 49 4E 44 00 2F 83
+0C 4E 65 4C 74 40 80 00 3B 40 CA 1D 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 1E 00 0E 58 2E 53 1E 4E
+FE FF 0E 93 F3 27 09 4E 78 49 48 C4 48 95 F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6A 4E 1E 43 4A 93 01 30 2E 83 8F 4C
+00 00 35 40 0E 44 34 40 00 44 30 4D 82 44 07 3E
+4E 55 4D 42 45 52 3C 4F 38 4F 29 4F 2F 82 1B 42
+DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00 05 28 7A 80
+07 00 7A 90 0A 00 12 28 0A 9B 22 C3 0F 2C 82 49
+D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E3 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 1B 42
+DC 1D 0C 43 2D 15 3D 40 F4 49 09 43 08 43 3F 82
+8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 90 2D 00 04 28
+C9 23 B1 43 02 00 DF 3F 2B 43 7A 80 25 00 07 24
+3B 52 6A 53 04 24 3B 40 10 00 5A 83 BA 23 1C 53
+1E 83 EA 3F F6 49 2F 24 2D 83 7A 90 28 00 CB 27
+32 D0 00 02 7A 90 F7 00 C6 27 7A 90 F5 00 23 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
+0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 45 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
+04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D 06 24
+32 C0 00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F
+02 00 04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3
+02 00 BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0
+00 02 01 20 2F 53 30 4D 7E 46 04 48 45 52 45 00
+2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D B6 44 01 2C
+1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D
+EC 46 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D
+A6 47 07 45 58 45 43 55 54 45 0A 4E 3E 4F 00 4A
+AE 4A 87 4C 49 54 45 52 41 4C 82 93 BE 1D 0C 24
+1A 42 C6 1D A2 52 C6 1D BA 40 14 48 00 00 8A 4E
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 06 24 19 4A
+02 00 8A 4E 02 00 0E 49 EB 3F 30 4D 00 48 05 43
+4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
+30 4D 82 4E C0 1D B2 4F C2 1D 3E 4F 82 43 C4 1D
+30 4D 85 12 20 00 87 12 32 4B 42 4B 80 48 50 4B
+3D 40 58 4B CC 22 82 3E 5A 4B 0A 4E 3E 4F 3D 40
+70 4B 23 27 3D 40 4A 4B 1A E2 BE 1D A1 27 B5 23
+72 4B 3E 4F 3D 40 4A 4B B8 23 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 26 4E CB 3F D2 4A
+08 45 56 41 4C 55 41 54 45 00 39 40 C0 1D 3C 49
+3B 49 3A 49 3D 15 B0 12 2A 44 46 4B AE 4B B2 41
+C4 1D B2 41 C2 1D B2 41 C0 1D 3D 41 30 4D 85 12
+BE 1D 08 45 04 51 55 49 54 00 82 43 08 18 31 40
+E0 1C B2 40 00 1C 00 1C 82 43 BE 1D B0 12 2A 44
+04 48 8C 47 42 4B 82 47 46 4B A4 44 0C 45 1E 48
+0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00 40 4C
+14 48 30 FF A0 4A 26 45 1E 48 0A 46 52 41 4D 20
+66 75 6C 6C 21 00 40 4C 3C 46 E0 4B C2 4A 05 41
+42 4F 52 54 3F 40 80 1C D0 3F 1E 4C 86 41 42 4F
+52 54 22 00 87 12 38 48 14 48 40 4C B0 4A 2A 44
+8F 93 02 00 03 20 2F 52 3E 4F 30 4D B0 12 CC 51
+B0 12 B6 46 92 C3 FC 05 38 40 50 55 39 42 03 43
+19 83 FD 23 18 83 FA 23 92 B3 FC 05 F3 23 87 12
+46 51 14 48 DE 1D EA 44 AC 47 1E 48 04 1B 5B 37
+6D 00 D6 47 58 44 40 46 9A 4C 04 48 1E 48 05 6C
+69 6E 65 3A D6 47 D0 44 24 46 D6 47 1E 48 04 1B
+5B 30 6D 00 D6 47 24 4C 00 00 83 5B 27 5D 87 12
+C0 4C 14 48 14 48 B0 4A B0 4A 2A 44 E8 48 01 27
+87 12 42 4B 80 48 EE 48 40 46 CE 4C 2A 44 7A 4B
+32 45 81 5C 92 42 C0 1D C4 1D 30 4D AA 4C 81 5B
+82 43 BE 1D 30 4D D2 4C 01 5D B2 43 BE 1D 30 4D
+BE 4F 02 00 3E 4F 30 4D 9A 4A 82 49 53 00 87 12
+BE 4B EA 44 40 46 12 4D AE 4C 14 48 F0 4C B0 4A
+2A 44 C0 4C F0 4C 2A 44 FA 4C 09 49 4D 4D 45 44
+49 41 54 45 1A 42 B6 1D FA D0 80 00 00 00 30 4D
+C4 4B 88 50 4F 53 54 50 4F 4E 45 00 87 12 42 4B
+80 48 EE 48 58 44 40 46 CE 4C 0C 45 40 46 5C 4D
+14 48 14 48 B0 4A B0 4A 14 48 B0 4A B0 4A 2A 44
+DE 4C 81 3B 82 93 BE 1D B5 27 87 12 14 48 2A 44
+B0 4A FA 4D E0 4C 2A 44 62 4D 07 3A 4E 4F 4E 41
+4D 45 30 12 A0 4D 2F 83 8F 4E 00 00 1E 42 C6 1D
+1E B3 0E 63 0A 4E 39 40 00 02 38 40 02 02 21 3C
+BA 40 87 12 FC FF A2 83 C6 1D B2 43 BE 1D 30 4D
+7A 4D 01 3A 30 12 A0 4D 92 B3 C6 1D A2 63 C6 1D
+87 12 42 4B 80 48 C8 4D 3D 41 08 4E 7A 4E 5A D3
 5A 53 0A 58 19 42 DA 1D 6E 4E 3E F0 1E 00 09 5E
-3E 4F BA 40 30 40 00 00 BA 40 C4 4E 02 00 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D
-30 41 82 9F BC 1D 09 20 18 42 B6 1D 19 42 B8 1D
-A8 49 FE FF 89 48 00 00 30 4D 87 12 60 49 0F 73
-74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 48 4D
-BE 49 08 56 41 52 49 41 42 4C 45 00 B0 12 CE 4E
-BA 40 86 12 FC FF E4 3F 24 4C 08 43 4F 4E 53 54
-41 4E 54 00 B0 12 CE 4E BA 40 85 12 FC FF 8A 4E
-FE FF 3E 4F D5 3F 5A 4F 06 43 52 45 41 54 45 00
-B0 12 CE 4E BA 40 85 12 FC FF 8A 4A FE FF C8 3F
-92 4C 05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12
-00 00 8A 4D 02 00 3D 41 30 4D 92 4F 05 44 45 46
-45 52 30 12 20 4F 8B 3F 7C 4A 05 3E 42 4F 44 59
-2E 52 30 4D 78 4F 04 43 4F 44 45 00 B0 12 CE 4E
-2A 82 82 4A C6 1D 87 12 C0 4E A2 52 74 52 2A 44
-C6 4F 07 43 4F 44 45 4E 4E 4D 87 12 9A 4E DE 4D
-D0 4F 2A 44 00 00 07 45 4E 44 43 4F 44 45 87 12
-BC 52 12 4F 2A 44 28 4D 03 41 53 4D 92 42 DA 1D
-EC 1D B2 40 78 52 DA 1D D9 3F F6 4F 06 45 4E 44
-41 53 4D 00 92 42 EC 1D DA 1D E9 3F 00 00 05 43
-4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12 00 00 A2 53
-C6 1D B2 43 BE 1D 30 40 BC 52 00 00 05 4C 4F 32
-48 49 1A 42 C6 1D BA 40 B0 12 00 00 BA 40 2A 44
-02 00 A2 52 C6 1D ED 3F 18 4E 85 48 49 32 4C 4F
-87 12 F2 46 9A 50 D6 4B DE 4D A2 52 74 52 2A 44
-6A 50 82 49 46 00 2F 83 8F 4E 00 00 1E 42 C6 1D
-A2 52 C6 1D BE 40 28 47 00 00 2E 53 30 4D AC 4F
-84 45 4C 53 45 00 A2 52 C6 1D 1A 42 C6 1D BA 40
-24 47 FC FF 8E 4A 00 00 2A 83 0E 4A 30 4D 1C 49
-84 54 48 45 4E 00 9E 42 C6 1D 00 00 3E 4F 30 4D
-E2 4F 85 42 45 47 49 4E 30 40 F2 46 C0 50 85 55
-4E 54 49 4C 39 40 28 47 A2 52 C6 1D 1A 42 C6 1D
-8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D 08 50 85 41
-47 41 49 4E 39 40 24 47 EF 3F 42 4F 85 57 48 49
-4C 45 87 12 86 50 78 44 2A 44 30 4E 86 52 45 50
-45 41 54 00 87 12 04 51 C6 50 2A 44 A0 50 82 44
-4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D
-BE 40 3C 47 FE FF A2 53 00 1C 1A 42 00 1C 8A 43
-00 00 30 4D E8 4B 84 4C 4F 4F 50 00 39 40 5E 47
-A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
-1E 42 00 1C A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A
-00 00 F6 3F 3E 4F 30 4D 98 47 85 2B 4C 4F 4F 50
-39 40 4C 47 E5 3F 56 51 85 4C 45 41 56 45 1A 42
-C6 1D BA 40 6E 47 00 00 BA 40 24 47 02 00 B2 50
-06 00 C6 1D A2 53 00 1C 2A 52 19 42 00 1C 89 4A
-00 00 30 4D 98 51 04 4D 4F 56 45 00 0A 4E 38 4F
-39 4F 3E 4F 0A 93 11 24 08 99 0F 24 06 2C F8 49
-00 00 18 53 1A 83 FB 23 30 4D 08 5A 09 5A 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 0C 51 0A 56
-4F 43 41 42 55 4C 41 52 59 00 87 12 80 4F 34 44
-10 00 34 44 00 00 3C 47 34 44 00 00 D6 4B 5E 47
-18 52 F2 46 34 44 C8 1D 44 44 F2 44 D6 4B FA 44
-98 4F 34 44 CA 1D FA 44 2A 44 BC 4D 05 46 4F 52
-54 48 84 12 32 52 9C 52 DE 55 DA 52 3C 52 82 50
-8A 51 06 54 CC 52 9C 54 06 57 DE 50 4E 55 00 00
-DA 53 E6 4D BA 4F 00 00 FE 50 09 41 53 53 45 4D
-42 4C 45 52 84 12 32 52 F8 62 90 62 F4 61 86 5D
-2E 5C AA 5D BC 60 00 00 1E 64 30 64 86 5C C4 5C
-C4 62 00 00 00 00 B8 5D 66 52 6A 52 04 41 4C 53
-4F 00 3A 40 0C 00 39 40 CA 1D 38 40 CC 1D 9D 3F
-4A 4E 08 50 52 45 56 49 4F 55 53 00 3A 40 0E 00
-39 40 CC 1D 38 40 CA 1D 8A 3F AC 49 04 4F 4E 4C
-59 00 82 43 CC 1D 30 4D 2E 51 0B 44 45 46 49 4E
-49 54 49 4F 4E 53 92 42 CA 1D DA 1D 30 4D D2 50
-07 43 4F 4D 50 41 52 45 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83 07 30 19 53
-F9 98 FF FF F5 27 02 2C 3E 43 30 4D 1E 43 30 4D
-C8 4E 86 5B 54 48 45 4E 5D 00 30 4D 22 53 86 5B
-45 4C 53 45 5D 00 87 12 34 44 00 00 36 45 B0 45
-C4 49 2A 4C 44 44 28 47 9C 53 8A 44 8A 44 60 49
-06 5B 54 48 45 4E 5D 00 F8 52 32 47 6A 53 44 49
-40 45 54 44 32 47 3E 53 2A 44 8A 44 8A 44 60 49
-06 5B 45 4C 53 45 5D 00 F8 52 32 47 8A 53 44 49
-40 45 54 44 32 47 3C 53 2A 44 60 49 04 5B 49 46
-5D 00 F8 52 32 47 3E 53 24 47 3C 53 44 49 60 49
-05 0D 0A 6B 6F 20 22 49 A0 48 38 4C 24 47 3E 53
-2E 53 84 5B 49 46 5D 00 0E 93 3E 4F BC 27 30 4D
-B2 53 89 5B 44 45 46 49 4E 45 44 5D 87 12 B0 45
-C4 49 1C 4A 6C 44 2A 44 C2 53 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 87 12 B0 45 C4 49 1C 4A 6C 44
-64 45 2A 44 F6 53 3D 41 B2 4E 0E 18 A2 4E 0C 18
-3E 4F 44 3C C6 51 06 4D 41 52 4B 45 52 00 B0 12
-CE 4E BA 40 84 12 FC FF BA 40 F4 53 FE FF 9A 42
-C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D 30 40
-18 4F 42 52 D2 52 E6 52 3A 54 3A 4E 82 4A C8 1D
-2E 4E 82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83
-18 48 FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23
-2A 4A 0A 93 F0 23 3E 4F 3D 41 30 4D B2 52 09 50
-57 52 5F 53 54 41 54 45 84 12 32 54 98 52 66 64
-1C 51 09 52 53 54 5F 53 54 41 54 45 92 42 0E 18
-7C 54 92 42 0C 18 7E 54 EF 3F 6E 54 08 50 57 52
-5F 48 45 52 45 00 92 42 C8 1D 7C 54 92 42 C6 1D
-7E 54 30 4D 82 54 08 52 53 54 5F 48 45 52 45 00
-92 42 C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F FE 51
-04 57 49 50 45 00 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B2 40 2A 48 28 48 B2 40 58 55 56 55 B2 40
-98 52 0E 18 B2 40 66 64 0C 18 30 12 8C 54 B2 40
-90 48 8E 48 B2 40 54 49 52 49 B2 40 A0 47 9E 47
-B2 40 CC 47 CA 47 B2 40 3C 1D 9E 48 B2 40 18 00
-0A 18 37 40 1A 44 36 40 BC 44 35 40 0E 44 34 40
-00 44 39 40 10 00 29 83 89 43 E0 1D FC 23 B2 40
-0A 00 DC 1D B2 40 20 00 B4 1D 30 41 D0 54 04 57
-41 52 4D 00 30 40 58 55 3D 40 8E 55 92 C3 30 01
-1E 42 08 18 0E 93 12 24 F2 B0 10 00 20 02 02 20
-3E E3 1E 53 F2 D0 30 00 2A 02 3E 90 0A 00 AB 27
-3E 90 16 00 A8 2F 2E 93 77 27 80 2F 30 4D 60 49
-06 0D 1B 5B 37 6D 23 00 22 49 E2 46 60 49 1F 46
-61 73 74 46 6F 72 74 68 20 56 33 30 30 20 28 43
-29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 20 22 49
-34 44 80 FF F2 46 28 45 D2 46 60 49 0B 62 79 74
-65 73 20 66 72 65 65 20 24 47 98 4D F0 52 04 43
+3E 4F 82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F
+BC 1D 2A 52 82 4A C6 1D 30 41 82 9F BC 1D 09 20
+18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
+30 4D 87 12 1E 48 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 4C 4C 90 4B 05 44 45 46 45 52
+B0 12 B8 4D BA 40 30 40 FC FF BA 40 AE 4D FE FF
+E3 3F 1E 4B 06 43 52 45 41 54 45 00 B0 12 B8 4D
+BA 40 85 12 FC FF 8A 4A FE FF D6 3F 2A 4E 05 44
+4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00 8A 4D
+02 00 3D 41 30 4D 4E 49 05 3E 42 4F 44 59 2E 52
+30 4D 44 4E 04 43 4F 44 45 00 B0 12 B8 4D 82 43
+58 61 A2 82 C6 1D 87 12 D6 50 B0 50 2A 44 84 4E
+07 43 4F 44 45 4E 4E 4D B0 12 86 4D F0 3F 00 00
+07 45 4E 44 43 4F 44 45 87 12 E4 50 FA 4D 2A 44
+2C 4C 03 41 53 4D B2 40 B4 50 DA 1D DE 3F B0 4E
+06 45 4E 44 41 53 4D 00 87 12 B8 4E F8 50 2A 44
+00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D BA 40 87 12
+00 00 A2 53 C6 1D B2 43 BE 1D 30 40 E4 50 00 00
+05 4C 4F 32 48 49 1A 42 C6 1D BA 40 B0 12 00 00
+BA 40 2A 44 02 00 A2 52 C6 1D ED 3F 1A 4D 85 48
+49 32 4C 4F 87 12 A0 4A 4E 4F B0 4A E0 4C D6 50
+B0 50 2A 44 1E 4F 82 49 46 00 2F 83 8F 4E 00 00
+1E 42 C6 1D A2 52 C6 1D BE 40 40 46 00 00 2E 53
+30 4D 5E 4E 84 45 4C 53 45 00 A2 52 C6 1D 1A 42
+C6 1D BA 40 3C 46 FC FF 8E 4A 00 00 2A 83 0E 4A
+30 4D D0 47 84 54 48 45 4E 00 9E 42 C6 1D 00 00
+3E 4F 30 4D A0 4E 85 42 45 47 49 4E 30 40 A0 4A
+74 4F 85 55 4E 54 49 4C 39 40 40 46 A2 52 C6 1D
+1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF 3E 4F 30 4D
+C2 4E 85 41 47 41 49 4E 39 40 3C 46 EF 3F 7A 48
+85 57 48 49 4C 45 87 12 3A 4F 76 44 2A 44 34 48
+86 52 45 50 45 41 54 00 87 12 B8 4F 7A 4F 2A 44
+54 4F 82 44 4F 00 2F 83 8F 4E 00 00 A2 53 C6 1D
+1E 42 C6 1D BE 40 54 46 FE FF A2 53 00 1C 1A 42
+00 1C 8A 43 00 00 30 4D E2 4A 84 4C 4F 4F 50 00
+39 40 76 46 A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF
+8A 4E FE FF 1E 42 00 1C A2 83 00 1C 2E 4E 0E 93
+03 24 8E 4A 00 00 F6 3F 3E 4F 30 4D 90 46 85 2B
+4C 4F 4F 50 39 40 64 46 E5 3F 0A 50 04 4D 4F 56
+45 00 0A 4E 38 4F 39 4F 3E 4F 0A 93 11 24 08 99
+0F 24 06 2C F8 49 00 00 18 53 1A 83 FB 23 30 4D
+08 5A 09 5A 19 83 18 83 E8 49 00 00 1A 83 FA 23
+30 4D 14 48 CA 1D F2 44 2A 44 84 12 82 50 B2 4F
+64 53 E2 4F BE 4C 36 4F 3E 50 78 54 64 48 6A 51
+84 51 92 4F 04 52 00 00 4A 54 E8 4C 78 4E 00 00
+84 12 82 50 22 60 BA 5F 1E 5F E2 5A 86 59 00 00
+E6 5D 00 00 48 61 5C 61 DE 59 1C 5A EE 5F 00 00
+00 00 BE 5A AE 50 3A 40 0C 00 39 40 CA 1D 38 40
+CC 1D C6 3F 3A 40 0E 00 39 40 CC 1D 38 40 CA 1D
+B9 3F 82 43 CC 1D 30 4D 92 42 CA 1D DA 1D 30 4D
+8A 50 F2 50 F8 50 08 51 3A 4E 82 4A C8 1D 2E 4E
+82 4E C6 1D 3D 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0E 98 FC 2B 89 48 00 00 1D 83 F6 23 2A 4A
+0A 93 F0 23 3E 4F 3D 41 30 4D 32 4D 09 50 57 52
+5F 53 54 41 54 45 84 12 00 51 D4 50 94 61 D0 4F
+09 52 53 54 5F 53 54 41 54 45 92 42 0E 18 4A 51
+92 42 0C 18 4C 51 EF 3F 3C 51 08 50 57 52 5F 48
+45 52 45 00 92 42 C8 1D 4A 51 92 42 C6 1D 4C 51
+30 4D 50 51 08 52 53 54 5F 48 45 52 45 00 92 42
+C8 1D 0E 18 92 42 C6 1D 0C 18 EC 3F C0 4F 04 57
+49 50 45 00 39 40 10 00 29 83 B9 43 80 FF FC 23
+B2 40 E0 46 DE 46 B2 40 0E 52 0C 52 B2 40 D4 50
+0E 18 B2 40 94 61 0C 18 30 12 5A 51 B2 40 86 47
+84 47 B2 40 08 48 06 48 B2 40 98 46 96 46 B2 40
+18 00 0A 18 37 40 1A 44 36 40 92 44 35 40 0E 44
+34 40 00 44 B2 40 0A 00 DC 1D B2 40 20 00 B4 1D
+30 41 9E 51 04 57 41 52 4D 00 30 40 0E 52 3D 40
+44 52 92 C3 30 01 1E 42 08 18 0E 93 12 24 F2 B0
+10 00 20 02 02 20 3E E3 1E 53 F2 D0 30 00 2A 02
+3E 90 0A 00 B7 27 3E 90 16 00 B4 2F 2E 93 83 27
+8C 2F 30 4D 1E 48 06 0D 1B 5B 37 6D 23 00 D6 47
+34 46 1E 48 19 46 61 73 74 46 6F 72 74 68 20 C2
+A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 20 D6 47
+14 48 30 FF A0 4A B8 44 24 46 1E 48 0A 62 79 74
+65 73 20 66 72 65 65 00 3C 46 9A 4C 86 4F 04 43
 4F 4C 44 00 92 B3 EA 05 FD 23 B2 40 04 A5 20 01
-B2 40 88 5A 5C 01 92 43 04 02 B2 40 FE FF 02 02
-A2 83 06 02 B2 43 26 02 B2 43 22 02 D2 D3 24 02
-B2 43 42 02 B2 43 46 02 B2 43 62 02 B2 43 66 02
-B2 40 80 00 84 02 B2 40 7F FF 82 02 B2 40 7F FF
-86 02 F2 43 22 03 F2 43 26 03 F2 40 A5 00 61 01
-82 43 66 01 39 40 80 00 B2 40 33 00 64 01 D2 43
-61 01 92 D2 9E 01 08 18 38 40 59 14 18 83 FE 23
-19 83 FA 23 B2 42 B0 01 F2 D0 10 00 2A 03 F2 C0
-40 00 A2 04 39 40 00 08 29 83 89 43 00 1C FC 23
-39 40 3A 00 29 83 B9 40 F0 55 C6 FF FB 23 B2 40
-30 48 E4 FF B2 40 81 00 E0 05 92 42 02 18 E6 05
-92 42 04 18 E8 05 92 C3 E0 05 92 D3 FA 05 3F 40
-80 1C 31 40 E0 1C 30 12 54 55 30 3F 38 40 C0 1D
-39 48 2A 48 09 5A 1A 52 C4 1D 09 9A 03 24 7E 9A
-FC 27 1A 83 0E 4A 2A 88 82 4A C4 1D 30 4D B6 54
-09 32 43 4F 4E 53 54 41 4E 54 87 12 80 4F D6 4B
-D6 4B 98 4F F6 56 2F 83 9F 4E 02 00 00 00 2E 4E
-3D 41 30 4D E0 56 09 32 56 41 52 49 41 42 4C 45
-87 12 80 4F 34 44 04 00 06 47 98 4F 2A 44 1C 15
-B0 12 2A 44 C4 49 1C 4A 32 47 34 57 D8 4A 28 47
-CC 4D 6C 57 36 57 29 4E 39 90 86 12 02 20 2E 53
-15 3C 39 90 85 12 03 20 1E 4E 02 00 0F 3C 39 90
-84 12 0C 20 2E 52 B9 90 F4 56 02 00 04 24 B9 90
-1C 57 02 00 03 20 B0 12 F6 56 6C 57 1B 17 30 41
-32 B0 00 02 01 24 3E 4F 30 41 3E 40 28 00 B0 12
-1E 57 B0 12 70 57 19 42 C6 1D A2 53 C6 1D 89 4E
-00 00 3E 40 29 00 1C 15 12 12 C4 1D 92 53 C4 1D
-B0 12 2A 44 C4 49 D8 4A 28 47 B8 57 AE 57 21 53
-3E 90 10 00 87 2D DA 2B BA 57 B2 41 C4 1D D6 3F
-87 12 B0 45 BC 56 C8 57 0C 43 1B 42 C6 1D A2 53
-C6 1D 6A 4E 3E 4F 7A 90 23 00 2F 20 92 53 C4 1D
-B0 12 1E 57 B0 12 70 57 0E 93 03 20 3C 40 00 03
-21 3C 1E 93 03 20 3C 40 10 03 1C 3C 2E 93 03 20
-3C 40 20 03 17 3C 2E 92 03 20 3C 40 20 02 12 3C
-3E 92 03 20 3C 40 30 02 0D 3C 3E 93 03 20 3C 40
-30 03 08 3C 3C 40 30 00 19 42 C6 1D A2 53 C6 1D
-89 4E 00 00 3E 4F 3D 41 30 4D 7A 90 26 00 09 20
-3C 40 10 02 92 53 C4 1D B0 12 1E 57 B0 12 70 57
-EB 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D
-B0 12 96 57 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-96 57 92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10
-0C 5E D8 3F B0 12 96 57 FA 23 3C 50 10 00 B0 12
-7A 57 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 87 12
-B0 45 BC 56 A6 58 FE 90 26 00 00 00 3E 40 20 00
-03 20 3C 50 82 00 C6 3F B0 12 96 57 E1 23 3C 50
-80 00 B0 12 7A 57 DC 3F 20 48 04 52 45 54 49 00
-87 12 34 44 00 13 D6 4B 2A 44 34 44 2C 00 C0 57
-9E 58 E4 58 2E 4E 0E DC 09 4B A2 3F 4C 50 03 4D
-4F 56 84 12 DA 58 00 40 EE 58 05 4D 4F 56 2E 42
-84 12 DA 58 40 40 00 00 03 41 44 44 84 12 DA 58
-00 50 08 59 05 41 44 44 2E 42 84 12 DA 58 40 50
-14 59 04 41 44 44 43 00 84 12 DA 58 00 60 22 59
-06 41 44 44 43 2E 42 00 84 12 DA 58 40 60 CA 58
-04 53 55 42 43 00 84 12 DA 58 00 70 40 59 06 53
-55 42 43 2E 42 00 84 12 DA 58 40 70 4E 59 03 53
-55 42 84 12 DA 58 00 80 5E 59 05 53 55 42 2E 42
-84 12 DA 58 40 80 2E 50 03 43 4D 50 84 12 DA 58
-00 90 78 59 05 43 4D 50 2E 42 84 12 DA 58 40 90
-1C 50 04 44 41 44 44 00 84 12 DA 58 00 A0 92 59
-06 44 41 44 44 2E 42 00 84 12 DA 58 40 A0 84 59
-03 42 49 54 84 12 DA 58 00 B0 B0 59 05 42 49 54
-2E 42 84 12 DA 58 40 B0 BC 59 03 42 49 43 84 12
-DA 58 00 C0 CA 59 05 42 49 43 2E 42 84 12 DA 58
-40 C0 D6 59 03 42 49 53 84 12 DA 58 00 D0 E4 59
-05 42 49 53 2E 42 84 12 DA 58 40 D0 00 00 03 58
-4F 52 84 12 DA 58 00 E0 FE 59 05 58 4F 52 2E 42
-84 12 DA 58 40 E0 30 59 03 41 4E 44 84 12 DA 58
-00 F0 18 5A 05 41 4E 44 2E 42 84 12 DA 58 40 F0
-B0 45 C0 57 36 5A 0A 4C 3C F0 70 00 8A 10 3A F0
-0F 00 0C DA 4F 3F 6A 59 03 52 52 43 84 12 30 5A
-00 10 48 5A 05 52 52 43 2E 42 84 12 30 5A 40 10
-54 5A 04 53 57 50 42 00 84 12 30 5A 80 10 62 5A
-03 52 52 41 84 12 30 5A 00 11 70 5A 05 52 52 41
-2E 42 84 12 30 5A 40 11 7C 5A 03 53 58 54 84 12
-30 5A 80 11 00 00 04 50 55 53 48 00 84 12 30 5A
-00 12 96 5A 06 50 55 53 48 2E 42 00 84 12 30 5A
-40 12 F0 59 04 43 41 4C 4C 00 84 12 30 5A 80 12
-1A 53 0E 4A 87 12 E2 46 60 49 0D 6F 75 74 20 6F
-66 20 62 6F 75 6E 64 73 48 4D B0 45 BC 56 E0 5A
-92 53 C4 1D 3E 40 2C 00 B0 12 2A 44 C4 49 D8 4A
-28 47 CC 4D 94 58 F8 5A 0A 4E 3E 4F 1A 83 E0 33
-29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
-38 90 10 00 D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10
-5A 06 8F 3F 8A 5A 06 52 52 43 4D 2E 41 00 84 12
-DA 5A 40 00 26 5B 04 52 52 43 4D 00 84 12 DA 5A
-50 00 36 5B 06 52 52 41 4D 2E 41 00 84 12 DA 5A
-40 01 44 5B 04 52 52 41 4D 00 84 12 DA 5A 50 01
-54 5B 06 52 4C 41 4D 2E 41 00 84 12 DA 5A 40 02
-62 5B 04 52 4C 41 4D 00 84 12 DA 5A 50 02 72 5B
-06 52 52 55 4D 2E 41 00 84 12 DA 5A 40 03 80 5B
-04 52 52 55 4D 00 84 12 DA 5A 50 03 A4 5A 07 50
-55 53 48 4D 2E 41 84 12 DA 5A 00 14 9E 5B 05 50
-55 53 48 4D 84 12 DA 5A 00 15 AE 5B 06 50 4F 50
-4D 2E 41 00 84 12 DA 5A 00 16 BC 5B 04 50 4F 50
-4D 00 84 12 DA 5A 00 17 85 12 00 3C 90 5B 03 53
-3E 3D 85 12 00 38 DE 5B 02 53 3C 00 85 12 00 34
-CC 5B 03 30 3E 3D 85 12 00 30 F2 5B 02 30 3C 00
-85 12 00 30 00 00 02 55 3C 00 85 12 00 2C 06 5C
-03 55 3E 3D 85 12 00 28 FC 5B 03 30 3C 3E 85 12
-00 24 1A 5C 02 30 3D 00 85 12 00 20 00 00 02 49
-46 00 1A 42 C6 1D 8A 4E 00 00 A2 53 C6 1D 0E 4A
-30 4D 10 5C 04 54 48 45 4E 00 1A 42 C6 1D 08 4E
-3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 31 2F
-88 DA 00 00 30 4D A0 59 04 45 4C 53 45 00 1A 42
-C6 1D BA 40 00 3C 00 00 A2 53 C6 1D 2F 83 8F 4A
-00 00 E3 3F 44 5C 05 55 4E 54 49 4C 3A 4F 08 4E
-3E 4F 19 42 C6 1D 2A 83 0A 89 0A 11 3A 90 00 FE
-10 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D
-30 4D 24 5A 05 41 47 41 49 4E 87 12 D8 5B 8C 5C
-2A 44 00 00 05 57 48 49 4C 45 87 12 32 5C 78 44
-2A 44 E8 5B 06 52 45 50 45 41 54 00 87 12 D8 5B
-8C 5C 4A 5C 2A 44 E8 5C 3D 41 2E 4E 08 4E 3E 4F
-2A 48 0A 93 88 43 00 00 CA 23 98 42 C6 1D 00 00
-30 4D B4 5A 03 42 57 31 84 12 E6 5C E0 1D 04 5D
-03 42 57 32 84 12 E6 5C E2 1D 10 5D 03 42 57 33
-84 12 E6 5C E4 1D 28 5D 3D 41 1A 42 C6 1D 2E 4E
-28 4E 08 93 8E 43 00 00 8B 23 BA 4F 00 00 A2 53
-C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-84 12 26 5D E6 1D 4C 5D 03 46 57 32 84 12 26 5D
-E8 1D 58 5D 03 46 57 33 84 12 26 5D EA 1D 3E 90
-00 30 07 24 3E E0 00 04 3E B0 00 10 02 24 3E E0
-00 08 30 4D 64 5D 04 47 4F 54 4F 00 87 12 D8 5B
-BE 4D CC 4B 2A 44 00 00 05 3F 47 4F 54 4F 87 12
-6E 5D BE 4D CC 4B 2A 44 00 00 03 4A 4D 50 87 12
-BE 4D BA 5C 2A 44 98 5D 04 3F 4A 4D 50 00 87 12
-6E 5D BE 4D 78 44 8C 5C 2A 44 87 12 B0 45 BC 56
-D2 5D 69 4E 3E 4F 3C 4F 2C 4C 1B 42 C6 1D A2 53
-C6 1D 79 90 52 00 0A 20 B0 12 96 57 5E 0E 5E 0E
-0E DC 8B 4E 00 00 0E 4B 3D 41 30 4D 79 90 23 00
-0D 20 3C C0 40 00 92 53 C4 1D A2 53 C6 1D B0 12
-1E 57 BB 4F 02 00 3E F0 0F 00 E8 3F 79 90 26 00
-03 20 3C E0 E0 00 EF 3F 3C C0 F0 00 79 90 40 00
-12 20 92 53 C4 1D B0 12 96 57 D8 23 3C D0 10 00
-3E 40 2B 00 B0 12 96 57 92 92 C0 1D C4 1D CE 27
-92 53 C4 1D CB 3F 3C D0 30 00 A2 53 C6 1D 3E 40
-28 00 B0 12 1E 57 BB 4F 02 00 3E 40 29 00 EA 3F
-87 12 B0 45 BC 56 78 5E 3B 4F 2C 4B 69 4E 7E 40
-20 00 79 90 52 00 03 20 B0 12 96 57 B1 3F 3C C0
-F0 00 A2 53 C6 1D 79 90 26 00 09 20 3C D0 60 00
-92 53 C4 1D B0 12 1E 57 BB 4F 02 00 A1 3F 3C D0
-70 00 3E 40 28 00 B0 12 1E 57 BB 4F 02 00 3E 40
-29 00 E2 3F 34 44 2C 00 CA 5D 70 5E 62 44 2A 44
-FA 58 04 4D 4F 56 41 00 84 12 C4 5E C0 00 1C 5D
-04 43 4D 50 41 00 84 12 C4 5E D0 00 B4 5C 04 41
-44 44 41 00 84 12 C4 5E E0 00 D4 5C 04 53 55 42
-41 00 84 12 C4 5E F0 00 E0 5E 05 43 41 4C 4C 41
-87 12 B0 45 BC 56 18 5F 1B 42 C6 1D A2 53 C6 1D
-6E 4E 3C 40 34 01 7E 90 52 00 0B 20 7E 40 20 00
-B0 12 96 57 5C 0E 0C DE 8B 4C 00 00 3E 4F 3D 41
-30 4D 2C 53 7E 90 40 00 0B 20 92 53 C4 1D 7E 40
-20 00 B0 12 96 57 EE 23 1C 53 3E 40 2B 00 E8 3F
-A2 53 C6 1D 7E 90 23 00 09 20 3C 40 3B 01 92 53
-C4 1D B0 12 1E 57 BB 4F 02 00 DC 3F 7E 90 26 00
-02 20 2C 53 F4 3F 7E 40 28 00 1C 83 B0 12 1E 57
-BB 4F 02 00 3E 40 29 00 CB 3F 87 12 B0 45 BC 56
-A2 5F 69 4E 3E 4F 3C 40 00 18 79 90 52 00 05 20
-B0 12 96 57 0E 4C 3D 41 30 4D 82 43 EE 1D 79 90
-23 00 0B 20 92 53 C4 1D B0 12 1E 57 2F 53 3E F0
-0F 00 5E 0A 5E 0E 0C DE ED 3F 79 90 26 00 F2 27
-79 90 40 00 12 20 92 53 C4 1D B0 12 96 57 E2 23
-3E 40 2B 00 92 53 C4 1D B0 12 96 57 92 92 C0 1D
-C4 1D D8 27 92 53 C4 1D D5 3F 3E 40 28 00 B0 12
-1E 57 8F 4E 00 00 3E 40 29 00 B0 12 96 57 3E 4F
-3E F0 0F 00 0C DE EA 3F 87 12 B0 45 BC 56 30 60
-3C 4F 69 4E 3E 40 20 00 79 90 52 00 BB 27 82 43
-EE 1D 79 90 26 00 08 20 92 53 C4 1D B0 12 1E 57
-2F 53 3E F0 0F 00 BF 3F 3E 40 28 00 B0 12 1E 57
-F7 3F 1B 42 C6 1D A2 53 C6 1D 0C 4E 3E 4F 1C D2
-EE 1D 82 43 EE 1D 3C DE 8B 4C 00 00 B2 41 C4 1D
-30 4D 34 44 C4 1D F2 44 B0 44 34 44 2C 00 9A 5F
-28 60 62 60 24 47 DA 58 D2 5E 04 4D 4F 56 58 00
-84 12 82 60 40 00 00 40 9A 60 06 4D 4F 56 58 2E
-41 00 84 12 82 60 00 00 40 40 AA 60 06 4D 4F 56
-58 2E 42 00 84 12 82 60 40 00 40 40 EE 5E 04 41
-44 44 58 00 84 12 82 60 40 00 00 50 CE 60 06 41
-44 44 58 2E 41 00 84 12 82 60 00 00 40 50 DE 60
-06 41 44 44 58 2E 42 00 84 12 82 60 40 00 40 50
-F0 60 05 41 44 44 43 58 84 12 82 60 40 00 00 60
-02 61 07 41 44 44 43 58 2E 41 84 12 82 60 00 00
-40 60 12 61 07 41 44 44 43 58 2E 42 84 12 82 60
-40 00 40 60 FC 5E 05 53 55 42 43 58 84 12 82 60
-40 00 00 70 36 61 07 53 55 42 43 58 2E 41 84 12
-82 60 00 00 40 70 46 61 07 53 55 42 43 58 2E 42
-84 12 82 60 40 00 40 70 58 61 04 53 55 42 58 00
-84 12 82 60 40 00 00 80 6A 61 06 53 55 42 58 2E
-41 00 84 12 82 60 00 00 40 80 7A 61 06 53 55 42
-58 2E 42 00 84 12 82 60 40 00 40 80 0A 5F 04 43
-4D 50 58 00 84 12 82 60 40 00 00 90 9E 61 06 43
-4D 50 58 2E 41 00 84 12 82 60 00 00 40 90 AE 61
-06 43 4D 50 58 2E 42 00 84 12 82 60 40 00 40 90
-68 5C 05 44 41 44 44 58 84 12 82 60 40 00 00 A0
-D2 61 07 44 41 44 44 58 2E 41 84 12 82 60 00 00
-40 A0 E2 61 07 44 41 44 44 58 2E 42 84 12 82 60
-40 00 40 A0 C0 61 04 42 49 54 58 00 84 12 82 60
-40 00 00 B0 06 62 06 42 49 54 58 2E 41 00 84 12
-82 60 00 00 40 B0 16 62 06 42 49 54 58 2E 42 00
-84 12 82 60 40 00 40 B0 28 62 04 42 49 43 58 00
-84 12 82 60 40 00 00 C0 3A 62 06 42 49 43 58 2E
-41 00 84 12 82 60 00 00 40 C0 4A 62 06 42 49 43
-58 2E 42 00 84 12 82 60 40 00 40 C0 5C 62 04 42
-49 53 58 00 84 12 82 60 40 00 00 D0 6E 62 06 42
-49 53 58 2E 41 00 84 12 82 60 00 00 40 D0 7E 62
-06 42 49 53 58 2E 42 00 84 12 82 60 40 00 40 D0
-0A 5A 04 58 4F 52 58 00 84 12 82 60 40 00 00 E0
-A2 62 06 58 4F 52 58 2E 41 00 84 12 82 60 00 00
-40 E0 B2 62 06 58 4F 52 58 2E 42 00 84 12 82 60
-40 00 40 E0 24 61 04 41 4E 44 58 00 84 12 82 60
-40 00 00 F0 D6 62 06 41 4E 44 58 2E 41 00 84 12
-82 60 00 00 40 F0 E6 62 06 41 4E 44 58 2E 42 00
-84 12 82 60 40 00 40 F0 34 44 C4 1D F2 44 B0 44
-B0 45 9A 5F 62 60 24 47 30 5A 8C 61 04 52 52 43
-58 00 84 12 08 63 40 00 00 10 1C 63 06 52 52 43
-58 2E 41 00 84 12 08 63 00 00 40 10 2C 63 06 52
-52 43 58 2E 42 00 84 12 08 63 40 00 40 10 3E 63
-04 52 52 55 58 00 84 12 08 63 40 01 00 10 50 63
-06 52 52 55 58 2E 41 00 84 12 08 63 00 01 40 10
-60 63 06 52 52 55 58 2E 42 00 84 12 08 63 40 01
-40 10 72 63 05 53 57 50 42 58 84 12 08 63 40 00
-80 10 84 63 07 53 57 50 42 58 2E 41 84 12 08 63
-00 00 80 10 94 63 04 52 52 41 58 00 84 12 08 63
-40 00 00 11 A6 63 06 52 52 41 58 2E 41 00 84 12
-08 63 00 00 40 11 B6 63 06 52 52 41 58 2E 42 00
-84 12 08 63 40 00 40 11 C8 63 04 53 58 54 58 00
-84 12 08 63 40 00 80 11 DA 63 06 53 58 54 58 2E
-41 00 84 12 08 63 00 00 80 11 24 5C 05 50 55 53
-48 58 84 12 08 63 40 00 00 12 FC 63 07 50 55 53
-48 58 2E 41 84 12 08 63 00 00 40 12 0C 64 07 50
-55 53 48 58 2E 42 84 12 08 63 40 00 40 12 EA 63
-03 52 50 54 87 12 B0 45 BC 56 3C 64 29 4E 7E 40
-20 00 79 90 52 00 06 20 B0 12 96 57 03 24 3E D0
-80 00 04 3C B0 12 1E 57 3E F0 0F 00 82 4E EE 1D
-3E 4F 3D 41 30 4D
+44 52 B2 40 88 5A 5C 01 B2 40 FE FF 02 02 B2 D3
+06 02 B2 43 26 02 B2 43 22 02 D2 D3 24 02 B2 43
+42 02 B2 43 46 02 B2 43 62 02 B2 43 66 02 B2 40
+7F FF 82 02 B2 43 86 02 F2 43 22 03 F2 43 26 03
+F2 40 A5 00 61 01 82 43 66 01 39 40 80 00 B2 40
+33 00 64 01 D2 43 61 01 92 D2 9E 01 08 18 38 40
+59 14 18 83 FE 23 19 83 FA 23 B2 42 B0 01 F2 D0
+10 00 2A 03 F2 C0 40 00 A2 04 39 40 00 08 29 83
+89 43 00 1C FC 23 39 40 3A 00 29 83 B9 40 A2 52
+C6 FF FB 23 B2 40 26 47 E4 FF B2 40 81 00 E0 05
+92 42 02 18 E6 05 92 42 04 18 E8 05 92 C3 E0 05
+92 D3 FA 05 3F 40 80 1C 31 40 E0 1C 30 12 0A 52
+3E 3F 8E 52 07 43 4F 4D 50 41 52 45 0C 4E 38 4F
+3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83
+07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D
+1E 43 30 4D B2 4D 86 5B 54 48 45 4E 5D 00 30 4D
+96 53 86 5B 45 4C 53 45 5D 00 87 12 14 48 00 00
+C6 44 42 4B 80 48 24 4B 34 44 40 46 0C 54 44 44
+1E 48 06 5B 54 48 45 4E 5D 00 6C 53 4A 46 DC 53
+F8 47 D0 44 58 44 4A 46 B2 53 2A 44 44 44 1E 48
+06 5B 45 4C 53 45 5D 00 6C 53 4A 46 FA 53 F8 47
+D0 44 58 44 4A 46 B0 53 2A 44 1E 48 04 5B 49 46
+5D 00 6C 53 4A 46 B2 53 3C 46 B0 53 F8 47 1E 48
+05 0D 0A 6B 6F 20 D6 47 8C 47 32 4B 3C 46 B2 53
+A2 53 84 5B 49 46 5D 00 0E 93 3E 4F BE 27 30 4D
+22 54 89 5B 44 45 46 49 4E 45 44 5D 87 12 42 4B
+80 48 EE 48 6A 44 2A 44 32 54 8B 5B 55 4E 44 45
+46 49 4E 45 44 5D 87 12 42 4B 80 48 EE 48 6A 44
+00 45 2A 44 66 54 3D 41 B2 4E 0E 18 A2 4E 0C 18
+3E 4F 30 40 5A 51 4C 50 06 4D 41 52 4B 45 52 00
+B0 12 B8 4D BA 40 84 12 FC FF BA 40 64 54 FE FF
+9A 42 C8 1D 00 00 28 83 8A 48 02 00 A2 52 C6 1D
+30 40 00 4E 1C 15 B0 12 2A 44 80 48 EE 48 4A 46
+BA 54 AA 49 40 46 CE 4C D4 54 BC 54 39 4E 39 80
+86 12 08 24 19 53 02 20 2E 4E 04 3C 2E 53 19 53
+01 24 2E 82 1B 17 30 41 32 B0 00 02 01 24 3E 4F
+30 41 3E 40 28 00 B0 12 A4 54 B0 12 D8 54 19 42
+C6 1D A2 53 C6 1D 89 4E 00 00 3E 40 29 00 1C 15
+12 12 C4 1D 92 53 C4 1D B0 12 2A 44 80 48 AA 49
+40 46 20 55 16 55 21 53 3E 90 10 00 81 2D DA 2B
+22 55 B2 41 C4 1D D6 3F 87 12 42 4B 74 48 30 55
+0C 43 1B 42 C6 1D A2 53 C6 1D 6A 4E 3E 4F 7A 90
+23 00 29 20 92 53 C4 1D B0 12 A4 54 B0 12 D8 54
+3C 40 00 03 0E 93 1C 24 3C 40 10 03 1E 93 18 24
+3C 40 20 03 2E 93 14 24 3C 40 20 02 2E 92 10 24
+3C 40 30 02 3E 92 0C 24 3C 40 30 03 3E 93 08 24
+3C 40 30 00 19 42 C6 1D A2 53 C6 1D 89 4E 00 00
+3E 4F 3D 41 30 4D 7A 90 26 00 09 20 3C 40 10 02
+92 53 C4 1D B0 12 A4 54 B0 12 D8 54 EB 3F 7A 90
+40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12 FE 54
+0C 20 3C 50 10 00 3E 40 2B 00 B0 12 FE 54 92 92
+C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E D8 3F
+B0 12 FE 54 FA 23 3C 50 10 00 B0 12 E2 54 EF 3F
+0C 43 1B 42 C6 1D A2 53 C6 1D 87 12 42 4B 74 48
+02 56 FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
+82 00 C6 3F B0 12 FE 54 E1 23 3C 50 80 00 B0 12
+E2 54 DC 3F D6 46 04 52 45 54 49 00 87 12 14 48
+00 13 B0 4A 2A 44 14 48 2C 00 28 55 FA 55 40 56
+09 4B 2E 4E 0E DC A2 3F 00 4F 03 4D 4F 56 84 12
+36 56 00 40 4A 56 05 4D 4F 56 2E 42 84 12 36 56
+40 40 00 00 03 41 44 44 84 12 36 56 00 50 64 56
+05 41 44 44 2E 42 84 12 36 56 40 50 70 56 04 41
+44 44 43 00 84 12 36 56 00 60 7E 56 06 41 44 44
+43 2E 42 00 84 12 36 56 40 60 26 56 04 53 55 42
+43 00 84 12 36 56 00 70 9C 56 06 53 55 42 43 2E
+42 00 84 12 36 56 40 70 AA 56 03 53 55 42 84 12
+36 56 00 80 BA 56 05 53 55 42 2E 42 84 12 36 56
+40 80 E2 4E 03 43 4D 50 84 12 36 56 00 90 D4 56
+05 43 4D 50 2E 42 84 12 36 56 40 90 D0 4E 04 44
+41 44 44 00 84 12 36 56 00 A0 EE 56 06 44 41 44
+44 2E 42 00 84 12 36 56 40 A0 E0 56 03 42 49 54
+84 12 36 56 00 B0 0C 57 05 42 49 54 2E 42 84 12
+36 56 40 B0 18 57 03 42 49 43 84 12 36 56 00 C0
+26 57 05 42 49 43 2E 42 84 12 36 56 40 C0 32 57
+03 42 49 53 84 12 36 56 00 D0 40 57 05 42 49 53
+2E 42 84 12 36 56 40 D0 00 00 03 58 4F 52 84 12
+36 56 00 E0 5A 57 05 58 4F 52 2E 42 84 12 36 56
+40 E0 8C 56 03 41 4E 44 84 12 36 56 00 F0 74 57
+05 41 4E 44 2E 42 84 12 36 56 40 F0 42 4B 28 55
+92 57 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
+4F 3F C6 56 03 52 52 43 84 12 8C 57 00 10 A4 57
+05 52 52 43 2E 42 84 12 8C 57 40 10 B0 57 04 53
+57 50 42 00 84 12 8C 57 80 10 BE 57 03 52 52 41
+84 12 8C 57 00 11 CC 57 05 52 52 41 2E 42 84 12
+8C 57 40 11 D8 57 03 53 58 54 84 12 8C 57 80 11
+00 00 04 50 55 53 48 00 84 12 8C 57 00 12 F2 57
+06 50 55 53 48 2E 42 00 84 12 8C 57 40 12 4C 57
+04 43 41 4C 4C 00 84 12 8C 57 80 12 1A 53 0E 4A
+87 12 34 46 1E 48 0D 6F 75 74 20 6F 66 20 62 6F
+75 6E 64 73 4C 4C 42 4B 74 48 3C 58 92 53 C4 1D
+3E 40 2C 00 B0 12 2A 44 80 48 AA 49 40 46 CE 4C
+F0 55 54 58 0A 4E 3E 4F 1A 83 E0 33 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+D5 2F 5A 0E 94 3F 2A 92 D1 2F 8A 10 5A 06 8F 3F
+E6 57 06 52 52 43 4D 2E 41 00 84 12 36 58 40 00
+82 58 04 52 52 43 4D 00 84 12 36 58 50 00 92 58
+06 52 52 41 4D 2E 41 00 84 12 36 58 40 01 A0 58
+04 52 52 41 4D 00 84 12 36 58 50 01 B0 58 06 52
+4C 41 4D 2E 41 00 84 12 36 58 40 02 BE 58 04 52
+4C 41 4D 00 84 12 36 58 50 02 CE 58 06 52 52 55
+4D 2E 41 00 84 12 36 58 40 03 DC 58 04 52 52 55
+4D 00 84 12 36 58 50 03 00 58 07 50 55 53 48 4D
+2E 41 84 12 36 58 00 14 FA 58 05 50 55 53 48 4D
+84 12 36 58 00 15 0A 59 06 50 4F 50 4D 2E 41 00
+84 12 36 58 00 16 18 59 04 50 4F 50 4D 00 84 12
+36 58 00 17 EC 58 03 53 3E 3D 85 12 00 38 36 59
+02 53 3C 00 85 12 00 34 28 59 03 30 3E 3D 85 12
+00 30 4A 59 02 30 3C 00 85 12 00 30 00 00 02 55
+3C 00 85 12 00 2C 5E 59 03 55 3E 3D 85 12 00 28
+54 59 03 30 3C 3E 85 12 00 24 72 59 02 30 3D 00
+85 12 00 20 00 00 02 49 46 00 1A 42 C6 1D 8A 4E
+00 00 A2 53 C6 1D 0E 4A 30 4D 68 59 04 54 48 45
+4E 00 1A 42 C6 1D 08 4E 3E 4F 09 48 29 53 0A 89
+0A 11 3A 90 00 02 33 2F 88 DA 00 00 30 4D FC 56
+04 45 4C 53 45 00 1A 42 C6 1D BA 40 00 3C 00 00
+A2 53 C6 1D 2F 83 8F 4A 00 00 E3 3F 9C 59 05 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C6 1D 2A 83
+0A 89 0A 11 3A 90 00 FE 12 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C6 1D 30 4D 80 57 05 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49
+4C 45 87 12 8A 59 76 44 2A 44 40 59 06 52 45 50
+45 41 54 00 87 12 12 5A A2 59 2A 44 3E 5A 3D 41
+08 4E 3E 4F 2A 48 B2 92 C4 1D CD 2F 98 42 C6 1D
+00 00 30 4D 10 58 03 42 57 31 84 12 3C 5A 00 00
+56 5A 03 42 57 32 84 12 3C 5A 00 00 62 5A 03 42
+57 33 84 12 3C 5A 00 00 7A 5A 3D 41 1A 42 C6 1D
+28 4E B2 92 C4 1D 90 2B BA 4F 00 00 A2 53 C6 1D
+8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 84 12
+78 5A 00 00 9A 5A 03 46 57 32 84 12 78 5A 00 00
+A6 5A 03 46 57 33 84 12 78 5A 00 00 00 00 05 3F
+47 4F 54 4F 3E 90 00 30 07 24 3E E0 00 04 3E B0
+00 10 02 24 3E E0 00 08 87 12 C0 4C DA 4A 2A 44
+B2 5A 04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
+00 3C F2 3F 87 12 42 4B 74 48 FC 5A 69 4E 3E 4F
+3C 4F 2C 4C 1B 42 C6 1D A2 53 C6 1D 79 90 52 00
+0A 20 B0 12 FE 54 5E 0E 5E 0E 0E DC 8B 4E 00 00
+0E 4B 3D 41 30 4D 79 90 23 00 0D 20 3C C0 40 00
+92 53 C4 1D A2 53 C6 1D B0 12 A4 54 BB 4F 02 00
+3E F0 0F 00 E8 3F 79 90 26 00 03 20 3C E0 E0 00
+EF 3F 3C C0 F0 00 79 90 40 00 12 20 92 53 C4 1D
+B0 12 FE 54 D8 23 3C D0 10 00 3E 40 2B 00 B0 12
+FE 54 92 92 C0 1D C4 1D CE 27 92 53 C4 1D CB 3F
+3C D0 30 00 A2 53 C6 1D 3E 40 28 00 B0 12 A4 54
+BB 4F 02 00 3E 40 29 00 EA 3F 87 12 42 4B 74 48
+A2 5B 3B 4F 2C 4B 69 4E 7E 40 20 00 79 90 52 00
+03 20 B0 12 FE 54 B1 3F 3C C0 F0 00 A2 53 C6 1D
+79 90 26 00 09 20 3C D0 60 00 92 53 C4 1D B0 12
+A4 54 BB 4F 02 00 A1 3F 3C D0 70 00 3E 40 28 00
+B0 12 A4 54 BB 4F 02 00 3E 40 29 00 E2 3F 14 48
+2C 00 F4 5A 9A 5B 66 44 2A 44 56 56 04 4D 4F 56
+41 00 84 12 EE 5B C0 00 6E 5A 04 43 4D 50 41 00
+84 12 EE 5B D0 00 0C 5A 04 41 44 44 41 00 84 12
+EE 5B E0 00 2C 5A 04 53 55 42 41 00 84 12 EE 5B
+F0 00 0A 5C 05 43 41 4C 4C 41 87 12 42 4B 74 48
+42 5C 1B 42 C6 1D A2 53 C6 1D 6E 4E 3C 40 34 01
+7E 90 52 00 0B 20 7E 40 20 00 B0 12 FE 54 5C 0E
+0C DE 8B 4C 00 00 3E 4F 3D 41 30 4D 2C 53 7E 90
+40 00 0B 20 92 53 C4 1D 7E 40 20 00 B0 12 FE 54
+EE 23 1C 53 3E 40 2B 00 E8 3F A2 53 C6 1D 7E 90
+23 00 09 20 3C 40 3B 01 92 53 C4 1D B0 12 A4 54
+BB 4F 02 00 DC 3F 7E 90 26 00 02 20 2C 53 F4 3F
+7E 40 28 00 1C 83 B0 12 A4 54 BB 4F 02 00 3E 40
+29 00 CB 3F 87 12 42 4B 74 48 CC 5C 69 4E 3E 4F
+3C 40 00 18 79 90 52 00 05 20 B0 12 FE 54 0E 4C
+3D 41 30 4D 82 43 58 61 79 90 23 00 0B 20 92 53
+C4 1D B0 12 A4 54 2F 53 3E F0 0F 00 5E 0A 5E 0E
+0C DE ED 3F 79 90 26 00 F2 27 79 90 40 00 12 20
+92 53 C4 1D B0 12 FE 54 E2 23 3E 40 2B 00 92 53
+C4 1D B0 12 FE 54 92 92 C0 1D C4 1D D8 27 92 53
+C4 1D D5 3F 3E 40 28 00 B0 12 A4 54 8F 4E 00 00
+3E 40 29 00 B0 12 FE 54 3E 4F 3E F0 0F 00 0C DE
+EA 3F 87 12 42 4B 74 48 5A 5D 3C 4F 69 4E 3E 40
+20 00 79 90 52 00 BB 27 82 43 58 61 79 90 26 00
+08 20 92 53 C4 1D B0 12 A4 54 2F 53 3E F0 0F 00
+BF 3F 3E 40 28 00 B0 12 A4 54 F7 3F 1B 42 C6 1D
+A2 53 C6 1D 0C 4E 3E 4F 1C D2 58 61 82 43 58 61
+3C DE 8B 4C 00 00 B2 41 C4 1D 30 4D 14 48 C4 1D
+EA 44 86 44 14 48 2C 00 C4 5C 52 5D 8C 5D 3C 46
+36 56 FC 5B 04 4D 4F 56 58 00 84 12 AC 5D 40 00
+00 40 C4 5D 06 4D 4F 56 58 2E 41 00 84 12 AC 5D
+00 00 40 40 D4 5D 06 4D 4F 56 58 2E 42 00 84 12
+AC 5D 40 00 40 40 18 5C 04 41 44 44 58 00 84 12
+AC 5D 40 00 00 50 F8 5D 06 41 44 44 58 2E 41 00
+84 12 AC 5D 00 00 40 50 08 5E 06 41 44 44 58 2E
+42 00 84 12 AC 5D 40 00 40 50 1A 5E 05 41 44 44
+43 58 84 12 AC 5D 40 00 00 60 2C 5E 07 41 44 44
+43 58 2E 41 84 12 AC 5D 00 00 40 60 3C 5E 07 41
+44 44 43 58 2E 42 84 12 AC 5D 40 00 40 60 26 5C
+05 53 55 42 43 58 84 12 AC 5D 40 00 00 70 60 5E
+07 53 55 42 43 58 2E 41 84 12 AC 5D 00 00 40 70
+70 5E 07 53 55 42 43 58 2E 42 84 12 AC 5D 40 00
+40 70 82 5E 04 53 55 42 58 00 84 12 AC 5D 40 00
+00 80 94 5E 06 53 55 42 58 2E 41 00 84 12 AC 5D
+00 00 40 80 A4 5E 06 53 55 42 58 2E 42 00 84 12
+AC 5D 40 00 40 80 34 5C 04 43 4D 50 58 00 84 12
+AC 5D 40 00 00 90 C8 5E 06 43 4D 50 58 2E 41 00
+84 12 AC 5D 00 00 40 90 D8 5E 06 43 4D 50 58 2E
+42 00 84 12 AC 5D 40 00 40 90 C0 59 05 44 41 44
+44 58 84 12 AC 5D 40 00 00 A0 FC 5E 07 44 41 44
+44 58 2E 41 84 12 AC 5D 00 00 40 A0 0C 5F 07 44
+41 44 44 58 2E 42 84 12 AC 5D 40 00 40 A0 EA 5E
+04 42 49 54 58 00 84 12 AC 5D 40 00 00 B0 30 5F
+06 42 49 54 58 2E 41 00 84 12 AC 5D 00 00 40 B0
+40 5F 06 42 49 54 58 2E 42 00 84 12 AC 5D 40 00
+40 B0 52 5F 04 42 49 43 58 00 84 12 AC 5D 40 00
+00 C0 64 5F 06 42 49 43 58 2E 41 00 84 12 AC 5D
+00 00 40 C0 74 5F 06 42 49 43 58 2E 42 00 84 12
+AC 5D 40 00 40 C0 86 5F 04 42 49 53 58 00 84 12
+AC 5D 40 00 00 D0 98 5F 06 42 49 53 58 2E 41 00
+84 12 AC 5D 00 00 40 D0 A8 5F 06 42 49 53 58 2E
+42 00 84 12 AC 5D 40 00 40 D0 66 57 04 58 4F 52
+58 00 84 12 AC 5D 40 00 00 E0 CC 5F 06 58 4F 52
+58 2E 41 00 84 12 AC 5D 00 00 40 E0 DC 5F 06 58
+4F 52 58 2E 42 00 84 12 AC 5D 40 00 40 E0 4E 5E
+04 41 4E 44 58 00 84 12 AC 5D 40 00 00 F0 00 60
+06 41 4E 44 58 2E 41 00 84 12 AC 5D 00 00 40 F0
+10 60 06 41 4E 44 58 2E 42 00 84 12 AC 5D 40 00
+40 F0 14 48 C4 1D EA 44 86 44 42 4B C4 5C 8C 5D
+3C 46 8C 57 B6 5E 04 52 52 43 58 00 84 12 32 60
+40 00 00 10 46 60 06 52 52 43 58 2E 41 00 84 12
+32 60 00 00 40 10 56 60 06 52 52 43 58 2E 42 00
+84 12 32 60 40 00 40 10 68 60 04 52 52 55 58 00
+84 12 32 60 40 01 00 10 7A 60 06 52 52 55 58 2E
+41 00 84 12 32 60 00 01 40 10 8A 60 06 52 52 55
+58 2E 42 00 84 12 32 60 40 01 40 10 9C 60 05 53
+57 50 42 58 84 12 32 60 40 00 80 10 AE 60 07 53
+57 50 42 58 2E 41 84 12 32 60 00 00 80 10 BE 60
+04 52 52 41 58 00 84 12 32 60 40 00 00 11 D0 60
+06 52 52 41 58 2E 41 00 84 12 32 60 00 00 40 11
+E0 60 06 52 52 41 58 2E 42 00 84 12 32 60 40 00
+40 11 F2 60 04 53 58 54 58 00 84 12 32 60 40 00
+80 11 04 61 06 53 58 54 58 2E 41 00 84 12 32 60
+00 00 80 11 7C 59 05 50 55 53 48 58 84 12 32 60
+40 00 00 12 26 61 07 50 55 53 48 58 2E 41 84 12
+32 60 00 00 40 12 36 61 07 50 55 53 48 58 2E 42
+84 12 32 60 40 00 40 12 00 00 14 61 03 52 50 54
+87 12 42 4B 74 48 68 61 29 4E 7E 40 20 00 79 90
+52 00 06 20 B0 12 FE 54 03 24 3E D0 80 00 05 3C
+B0 12 A4 54 1E 83 3E F0 0F 00 82 4E 58 61 3E 4F
+3D 41 30 4D
 @FFFE
-F0 55
+A2 52
 q
index f118906..49cc83e 100644 (file)
@@ -31,15 +31,13 @@ exit
 
 
 :preprocess
-::%~d1\prog\gema.exe -nobackup -line -t '\n=\r\n;\r\n=\r\n' -f %~d1\inc\%~n2.pat %1 %~dp1last.4TH
-%~d1\prog\gema.exe -nobackup -line -t '-\r\n=\r\n' -f %~d1\inc\%~n2.pat %1 %~dp1last.4TH
-::%~d1\prog\gema.exe -nobackup -line -t -f %~d1\inc\%~n2.pat %1 %~dp1last.4TH
-@XCOPY /D /Y  "%~dp1last.4TH" "%~dp1\%~n2\%~n1.4TH*" > NUL
+%~d1\prog\gema.exe -nobackup -line -t '-\r\n=\r\n' -f %~d1\inc\%~n2.pat  %~dpn1.f %~dp1LAST.4TH
+XCOPY /D /Y  %~dp1LAST.4TH %~dp1\%~n2\%~n1.4TH* > NUL
 exit
 
 :: %~dpn1.f is the symbolic source file
 :: %~d1\inc\%~n2.pat is the pattern file for preprocessor gema.exe
-:: %~dpn1.4TH is the output source file (ready to send to the target)
+:: %~dp1LAST.4TH is the output source file (ready to send to the target)
 :: %~d1 is the drive of arg %1
 :: %~n2 is your selected template by SelectTarget.bat or your scite $(1)
 
index b828347..47f5c67 100644 (file)
@@ -15,7 +15,7 @@
 @echo 6  MSP_EXP430FR2433
 @echo 7  CHIPSTICK_FR2433
 @echo 8  MSP_EXP430FR2355
-
+@echo 9  LP_MSP430FR2476
 
 @set /p choice=your choice: 
 
@@ -27,6 +27,7 @@
 @if %choice% == 6    set template=MSP_EXP430FR2433
 @if %choice% == 7    set template=CHIPSTICK_FR2433
 @if %choice% == 8    set template=MSP_EXP430FR2355
+@if %choice% == 9    set template=LP_MSP430FR2476
 
 @exit /b
 
@@ -44,6 +45,7 @@
 @if /I %device:~0,16%  == MSP_EXP430FR2433 set device=MSP430FR2433
 @if /I %device:~0,16%  == CHIPSTICK_FR2433 set device=MSP430FR2433
 @if /I %device:~0,16%  == MSP_EXP430FR2355 set device=MSP430FR2355
+@if /I %device:~0,15%  == LP_EXP430FR2476  set device=MSP430FR2476
 
 @exit /b
 
index 29a302f..caabf28 100644 (file)
@@ -2,11 +2,11 @@
 testlink
 if result=0 connect  param3
 
-inputbox 'Send a File' 'Select File : ' param2
+inputbox 'Send this file to the MSP430FR target:' ' ' param2
 
 strcompare param4 'NOECHO'
 if result = 0 then
-    sendln 'NOECHO $0A BASE ! [DEFINED] STOP [IF] STOP [THEN]' ; set no echo from FastForth
+    sendln 'NOECHO PWR_STATE [DEFINED] STOP [IF] STOP [THEN]' ; set no echo from FastForth
     setecho 0       ; suppr. echo from Teraterm
     showtt 0
 ;    clearscreen 1
@@ -17,7 +17,7 @@ endif
 
 strcompare param4 'HALF'
 if result = 0 then
-    sendln 'NOECHO $0A BASE ! [DEFINED] STOP [IF] STOP [THEN]' ; set no echo from FastForth
+    sendln 'NOECHO PWR_STATE [DEFINED] STOP [IF] STOP [THEN]' ; set no echo from FastForth
     showtt 0
 ;    clearscreen 1
     sendfile inputstr 0
@@ -27,7 +27,7 @@ if result = 0 then
 endif
 
 ; default mode = ECHO
-    sendln 'ECHO $0A BASE ! [DEFINED] STOP [IF] STOP [THEN]'
+    sendln 'ECHO PWR_STATE [DEFINED] STOP [IF] STOP [THEN]'
     setecho 0       ; no echo from Teraterm
     showtt 0
 ;    clearscreen 1
index e2bd883..64db942 100644 (file)
@@ -9,9 +9,9 @@ strinsert fname 1 '\'       ; fname = \file.ext, to force absolute path
 testlink
 if result=0 connect  param3
 
-sendln '     $0A BASE ! PWR_STATE ECHO [DEFINED] STOP [IF] STOP [THEN]' ; blanks are to pass LPMx wake up time...
+sendln '     PWR_STATE ECHO [DEFINED] STOP [IF] STOP [THEN]' ; blanks are to pass LPMx wake up time...
 
-inputbox 'here you can add a path to the file: ' 'Send a File to SD_CARD target' fname
+inputbox 'here you can change path of the file: ' 'Send this file to SD_CARD target' fname
 
 sendln 'TERM2SD" ' inputstr '"'    ; send to FastForth the command TERM2SD" \file.ext" ...with optionnal path added in inputbox
 
index aea5f15..10f081f 100644 (file)
@@ -27,6 +27,9 @@
 ; Ajoutez quelquefois, et souvent effacez.
 ;                                                        Boileau, L'Art poétique
 ;-------------------------------------------------------------------------------
+; Purgare ... et repurgare.
+;                                              Molière, Le Malade imaginaire ;-)
+;-------------------------------------------------------------------------------
 
 ;===============================================================================
 ;===============================================================================
 ;===============================================================================
 ;===============================================================================
 
-VER .equ "V300" ; FORTH version
+VER .equ "V301" ; FORTH version
 
-    macexp off  ; uncomment to hide macro results in forthMSP430FR.lst
+    macexp off      ; uncomment to hide macros development in forthMSP430FR.lst
 
 ;-------------------------------------------------------------------------------
 ; TARGETS kernel    ; sizes are for 8MHz, DTC=1, THREADS=1, 3WIRES (XON/XOFF)
 ;-------------------------------------------------------------------------------
-;                                                                   ;INFO+VECTOR+ MAIN
-;MSP_EXP430FR5739   ; compile for MSP-EXP430FR5739 launchpad        ; 24 +  2   + 3840 bytes
-;MSP_EXP430FR5969   ; compile for MSP-EXP430FR5969 launchpad        ; 24 +  2   + 3816 bytes
-;MSP_EXP430FR5994   ; compile for MSP-EXP430FR5994 launchpad        ; 24 +  2   + 3842 bytes
-;MSP_EXP430FR6989   ; compile for MSP-EXP430FR6989 launchpad        ; 24 +  2   + 3852 bytes
-;MSP_EXP430FR4133   ; compile for MSP-EXP430FR4133 launchpad        ; 24 +  2   + 3906 bytes
-;MSP_EXP430FR2355   ; compile for MSP-EXP430FR2355 launchpad        ; 24 +  2   + 3818 bytes
-;MSP_EXP430FR2433   ; compile for MSP-EXP430FR2433 launchpad        ; 24 +  2   + 3804 bytes
-CHIPSTICK_FR2433   ;; compile for the "CHIPSTICK" of M. Ken BOAK    ; 24 +  2   + 3804 bytes
+;                                                           ;INFO+VECTOR+ MAIN
+;MSP_EXP430FR5739  ; compile for MSP-EXP430FR5739 launchpad ; 24 +  2   + 3434 bytes
+;MSP_EXP430FR5969  ; compile for MSP-EXP430FR5969 launchpad ; 24 +  2   + 3424 bytes
+MSP_EXP430FR5994  ;; compile for MSP-EXP430FR5994 launchpad ; 24 +  2   + 3444 bytes
+;MSP_EXP430FR6989  ; compile for MSP-EXP430FR6989 launchpad ; 24 +  2   + 3448 bytes
+;MSP_EXP430FR4133  ; compile for MSP-EXP430FR4133 launchpad ; 24 +  2   + 3484 bytes
+;MSP_EXP430FR2355  ; compile for MSP-EXP430FR2355 launchpad ; 24 +  2   + 3416 bytes
+;MSP_EXP430FR2433  ; compile for MSP-EXP430FR2433 launchpad ; 24 +  2   + 3408 bytes
+;LP_MSP430FR2476   ; compile for LP_MSP430FR2476  launchpad ; 24 +  2   + 3422 bytes
+;CHIPSTICK_FR2433  ; compile for "CHIPSTICK" of M. Ken BOAK ; 24 +  2   + 3414 bytes
 
 ; choose DTC (Direct Threaded Code) model, if you don't know, choose 1
 DTC .equ 1  ; DTC model 1 : DOCOL = CALL rDOCOL           14 cycles 1 word      shortest DTC model
@@ -59,43 +63,44 @@ DTC .equ 1  ; DTC model 1 : DOCOL = CALL rDOCOL           14 cycles 1 word
 
 THREADS     .equ 16 ;  1,  2 ,  4 ,  8 ,  16,  32  search entries in dictionnary.
                     ; +0, +42, +54, +70, +104, +168 bytes, usefull to speed up compilation;
-                    ; choose 16
+                    ; choose 16 if FRAM > 15 kb, else 1.
 
 FREQUENCY   .equ 16 ; fully tested at 1,2,4,8,16 MHz (+ 24 MHz for MSP430FR57xx,MSP430FR2355)
 
 ;-------------------------------------------------------------------------------
 ; KERNEL OPTIONS that can't be added later
 ;-------------------------------------------------------------------------------
-CONDCOMP            ;; +  368 bytes : adds conditionnal compilation : COMPARE [DEFINED] [UNDEFINED] [IF] [ELSE] [THEN] MARKER
-MSP430ASSEMBLER     ;; + 1828 bytes : adds embedded assembler with TI syntax; without, you can do all but all much more slowly...
-;EXTENDED_ASM        ; + 1896 bytes : adds extended assembler for programming or data access beyond $FFFF.
-NONAME              ;; +   54 bytes : adds :NONAME CODENNM (CODENoNaMe)
-VOCABULARY_SET      ;; +  104 bytes : adds words: VOCABULARY FORTH ASSEMBLER ALSO PREVIOUS ONLY DEFINITIONS (FORTH83)
-DOUBLE_INPUT        ;; +   74 bytes : adds the interpretation input for double numbers (dot numbers)
-FIXPOINT_INPUT      ;; +  120 bytes : adds the interpretation input for Q15.16 numbers, mandatory for FIXPOINT ADD-ON
-;SD_CARD_LOADER      ; + 1748 bytes : to LOAD source files from SD_card
-;SD_CARD_READ_WRITE  ; + 1192 bytes : to read, create, write and del files + copy text files from PC to SD_Card
-;BOOTLOADER          ; +   72 bytes : includes to <reset> SD_CARD\BOOT.4TH as bootloader. To do: ' BOOT IS QUIT
+CONDCOMP            ;; +  320 bytes : adds conditionnal compilation : COMPARE [DEFINED] [UNDEFINED] [IF] [ELSE] [THEN] MARKER
+MSP430ASSEMBLER     ;; + 1690 bytes : adds embedded assembler with TI syntax; without, you can do all but all much more slowly...
+DOUBLE_INPUT        ;; +   58 bytes : adds the interpretation input for double numbers (dot numbers)
+EXTENDED_MEM        ;; +  318 bytes : adds to assembler the data access beyond $FFFF.
+EXTENDED_ASM        ;; + 1488 bytes : adds extended assembler for programming beyond $FFFF.
+FIXPOINT_INPUT      ;; +  128 bytes : adds the interpretation input for Q15.16 numbers, mandatory for FIXPOINT ADD-ON
+NONAME              ;; +   56 bytes : adds :NONAME CODENNM (CODE No NaMe)
+SD_CARD_LOADER      ;; + 1766 bytes : to LOAD source files from SD_card
+SD_CARD_READ_WRITE  ;; + 1148 bytes : to read, create, write and del files + copy text files from PC to target SD_Card
+BOOTLOADER          ;; +   74 bytes : includes to <reset> SD_CARD\BOOT.4TH as bootloader. To do: ' BOOT IS QUIT
+VOCABULARY_SET      ;; +  106 bytes : adds words: VOCABULARY FORTH ASSEMBLER ALSO PREVIOUS ONLY DEFINITIONS (FORTH83)
 ;PROMPT              ; +   22 bytes : to display prompt "ok "
 
 ;-------------------------------------------------------------------------------
 ; OPTIONAL ADDITIONS that can be added later by downloading their source file   >-----------------------+
-; when added in kernel, they are protected against WIPE and Deep Reset...                               |
+; however, added in kernel, they are protected against WIPE and Deep Reset...                           |
 ;-------------------------------------------------------------------------------                        v
+;ANS_CORE_COMPLEMENT ; + 1376 bytes : required to pass coretest.4th                                 ANS_COMP.f
 ;FIXPOINT            ; +  422/528 bytes add HOLDS F+ F- F/ F* F#S F. S>F 2@ 2CONSTANT               FIXPOINT.f
 ;UTILITY             ; +  434/524 bytes (1/16threads) : add .S .RS WORDS U.R DUMP ?                 UTILITY.f
 ;SD_TOOLS            ; +  142 bytes for trivial DIR, FAT, CLUSTER and SECTOR view, adds UTILITY     SD_TOOLS.f
-;ANS_CORE_COMPLEMENT ; +  924 bytes : required to pass coretest.4th                                 ANS_COMP.f
 
 ;-------------------------------------------------------------------------------
 ; FAST FORTH TERMINAL configuration
 ;-------------------------------------------------------------------------------
 ;HALFDUPLEX          ; to use FAST FORTH with half duplex terminal
 TERMINALBAUDRATE    .equ 115200 ; choose value considering the frequency and the UART2USB bridge, see explanations below.
-TERMINAL3WIRES      ;;               enable 3 wires (GND,TX,RX) with XON/XOFF software flow control (PL2303TA/HXD, CP2102)
+TERMINAL3WIRES      ;; (18 bytes)    enable 3 wires (GND,TX,RX) with XON/XOFF software flow control (PL2303TA/HXD, CP2102)
 TERMINAL4WIRES      ;; + 12 bytes    enable 4 wires with hardware flow control on RX with RTS (PL2303TA/HXD, FT232RL)
 ;                                    this RTS pin may be permanently wired on SBWTCK/TEST pin without disturbing SBW 2 wires programming
-;TERMINAL5WIRES      ; +  6 bytes    enable 5 wires with hardware flow control on RX/TX with RTS/CTS (PL2303TA/HXD, FT232RL)...
+;TERMINAL5WIRES      ; + 10 bytes    enable 5 wires with hardware flow control on RX/TX with RTS/CTS (PL2303TA/HXD, FT232RL)...
 
 ;===============================================================================
 ; Software control flow XON/XOFF configuration:
@@ -128,16 +133,15 @@ TERMINAL4WIRES      ;; + 12 bytes    enable 4 wires with hardware flow control o
 ; --------------------------------------------------------------------------------------------
 ; WARNING ! if you use PL2303TA/HXD cable as supply, open the box before to weld red wire on 3v3 pad !
 ; --------------------------------------------------------------------------------------------
-; 9600,19200,38400,57600    (250kHz)
-; + 115200,134400           (500kHz)
+; 9600 up to 134400 Bds     (500kHz)
 ; + 201600,230400,268800    (1MHz)
 ; + 403200,460800,614400    (2MHz)
 ; + 806400,921600,1228800   (4MHz)
 ; + 2457600                 (8MHz,PL2303TA)
 ; + 1843200,2457600         (8MHz,PL2303HXD)
 ; + 3MBds                   (16MHz,PL2303TA)
-; + 3MBds,4MBds,5MBds       (16MHz,PL2303HXD)
-; + 6MBds                   (MSP430FR57xx,MSP430FR2355 families,24MHz)
+; + 3MBds,4MBds,5MBds       (16MHz,PL2303HXD with shortened cable) 5MBds at 16MHz, not too lazy !:-)
+; + 6MBds                   (24MHz,MSP430FR57xx and MSP430FR2355 families, PL2303HXD with shortened cable)
 
 ; UARTtoUSB module with Silabs CP2102 (supply current = 20 mA)
 ; ---------------------------------------------------------------------------------------------------
@@ -234,23 +238,23 @@ TERMINAL4WIRES      ;; + 12 bytes    enable 4 wires with hardware flow control o
 ;-------------------------------------------------------------------------------
 
 ;-------------------------------------
-; name              words   ; comment
+; name             words    ; comment
 ;-------------------------------------
 ;LSTACK = L0 = LEAVEPTR     ; ----- RAM_ORG
                             ; |
-LSTACK_LEN .equ    16       ; | grows up
+LSTACK_LEN .equ     16      ; | grows up
                             ; V
                             ; ^
-PSTACK_LEN .equ    48       ; | grows down
+PSTACK_LEN .equ     48      ; | grows down
                             ; |
 ;PSTACK=S0                  ; ----- RAM_ORG + $80
                             ; ^
-RSTACK_LEN .equ    48       ; | grows down
+RSTACK_LEN .equ     48      ; | grows down
                             ; |
 ;RSTACK=R0                  ; ----- RAM_ORG + $E0
 
 ;-------------------------------------
-; names             bytes   ; comments
+; names            bytes    ; comments
 ;-------------------------------------
 ; PAD_I2CADR                ; ----- RAM_ORG + $E0
 ; PAD_I2CCNT                ;       
@@ -266,7 +270,7 @@ TIB_LEN     .equ    84      ; | grows up    (ans spec. : TIB >= 80 chars)
                             ; v
 ; HOLDS_ORG                 ; ------RAM_ORG + $190
                             ; ^
-HOLD_LEN   .equ    34       ; | grows down  (ans spec. : HOLD_LEN >= (2*n) + 2 char, with n = 16 bits/cell
+HOLD_LEN   .equ     34      ; | grows down  (ans spec. : HOLD_LEN >= (2*n) + 2 char, with n = 16 bits/cell
                             ; |
 ; HOLD_BASE                 ; ----- RAM_ORG + $1B2
                             ;
@@ -284,7 +288,7 @@ HOLD_LEN   .equ    34       ; | grows down  (ans spec. : HOLD_LEN >= (2*n) + 2 c
 ; SD_BUF_I2CCNT             ;
 ; SD_BUF                    ; ----- RAM_ORG + $200
                             ;
-SD_BUF_LEN   .equ 200h      ;       512 bytes buffer
+SD_BUF_LEN   .equ   200h    ;       512 bytes buffer
                             ;
 ; SD_BUF_END                ; ----- RAM_ORG + $400 
 
@@ -323,24 +327,10 @@ CONTEXT         .equ HOLD_BASE+24   ; CONTEXT dictionnary space (8 CELLS)
 CURRENT         .equ HOLD_BASE+40   ; CURRENT dictionnary ptr
 BASE            .equ HOLD_BASE+42
 LINE            .equ HOLD_BASE+44   ; line in interpretation (initialized by NOECHO)
-
 ; --------------------------------------------------------------;
 ; RAM_ORG + $1E0 : free for user after source file compilation  ;
 ; --------------------------------------------------------------;
-RAM_ASM_ORG     .equ HOLD_BASE+46 
-ASMBW1          .equ HOLD_BASE+46
-ASMBW2          .equ HOLD_BASE+48
-ASMBW3          .equ HOLD_BASE+50
-ASMFW1          .equ HOLD_BASE+52
-ASMFW2          .equ HOLD_BASE+54
-ASMFW3          .equ HOLD_BASE+56
-SAV_CURRENT     .equ HOLD_BASE+58   ; save current CURRENT during create assembler words
-RPT_WORD        .equ HOLD_BASE+60   ; for extended assembler
-RAM_ASM_END     .equ HOLD_BASE+62   ; 
-RAM_ASM_LEN     .equ RAM_ASM_END-RAM_ASM_ORG 
-; ----------------------------------;
-; RAM_ORG + $1F0 : free for user    ;
-; ----------------------------------;
+
 
 ; --------------------------------------------------
 ; RAM_ORG + $1FC : RAM SD_CARD SD_BUF 4 + 512 bytes
@@ -359,41 +349,41 @@ SD_BUF_END      .equ SD_BUF + 200h   ; 512bytes
 ; --------------------------
 ; FRAM INFO KERNEL CONSTANTS
 ; --------------------------
-INI_THREAD      .word THREADS               ; used by ADDON_UTILITY.f
-TERMBRW_RST     .word TERMBRW_INI           ; set by TERMINALBAUDRATE.inc
-TERMMCTLW_RST   .word TERMMCTLW_INI         ; set by TERMINALBAUDRATE.inc
-    .IF FREQUENCY = 0.25
-FREQ_KHZ        .word 250                   ;
-    .ELSEIF FREQUENCY = 0.5
-FREQ_KHZ        .word 500                   ;
-    .ELSE
-FREQ_KHZ        .word FREQUENCY*1000        ; user use
-    .ENDIF
-SAVE_SYSRSTIV   .word 5                     ;
-LPM_MODE        .word CPUOFF+GIE            ; LPM0 is the default mode
-;LPM_MODE        .word CPUOFF+GIE+SCG0       ; LPM1 is the default mode (disable FLL)
-INIDP           .word ROMDICT               ; define RST_STATE
-INIVOC          .word lastvoclink           ; define RST_STATE
-FORTHVERSION    .word VERSIO                ;
-FORTHADDON      .word FADDON                ;
-                .word RXON                  ; 1814h for user use: CALL &RXON
-                .word RXOFF                 ; 1816h for user use: CALL &RXOFF
+INI_THREAD      .word THREADS           ; used by ADDON_UTILITY.f
+TERMBRW_RST     .word TERMBRW_INI       ; set by TERMINALBAUDRATE.inc
+TERMMCTLW_RST   .word TERMMCTLW_INI     ; set by TERMINALBAUDRATE.inc
+    .IF FREQUENCY = 0.25    
+FREQ_KHZ        .word 250               ;
+    .ELSEIF FREQUENCY = 0.5 
+FREQ_KHZ        .word 500               ;
+    .ELSE   
+FREQ_KHZ        .word FREQUENCY*1000    ; user use
+    .ENDIF  
+SAVE_SYSRSTIV   .word 5                 ;
+LPM_MODE        .word CPUOFF+GIE        ; LPM0 is the default mode
+;LPM_MODE        .word CPUOFF+GIE+SCG0  ; LPM1 is the default mode (disable FLL)
+INIDP           .word ROMDICT           ; define RST_STATE
+INIVOC          .word lastvoclink       ; define RST_STATE
+FORTHVERSION    .word VERSIO            ;
+FORTHADDON      .word FADDON            ;
+                .word RXON              ; 1814h for user use: CALL &RXON
+                .word RXOFF             ; 1816h for user use: CALL &RXOFF
     .IFDEF SD_CARD_LOADER
-                .word ReadSectorWX          ; 1818h used by ADDON_SD_TOOLS.f
+                .word ReadSectorWX      ; 1818h used by ADDON_SD_TOOLS.f
         .IFDEF SD_CARD_READ_WRITE
-                .word WriteSectorWX         ; 181Ah used by ADDON_SD_TOOLS.f
+                .word WriteSectorWX     ; 181Ah used by ADDON_SD_TOOLS.f
         .ENDIF ; SD_CARD_READ_WRITE
     .ENDIF ; SD_CARD_LOADER
 
-; -------------------------------
+; ---------------------------------------
 ; VARIABLES that should be in RAM
-; -------------------------------
+; ---------------------------------------
 
     .IFDEF SD_CARD_LOADER
-        .IF RAM_LEN < 2048      ; if RAM < 2K (FR57xx) the variables below are in INFO space (FRAM)
-SD_ORG     .equ INFO_ORG+2Ch    ;
-        .ELSE                   ; if RAM >= 2k the variables below are in RAM
-SD_ORG     .equ SD_BUF_END+2    ; 1 word guard
+        .IF RAM_LEN < 2048              ; if RAM < 2K (FR57xx) the variables below are in INFO space (FRAM)
+SD_ORG     .equ INFO_ORG+2Ch            ;
+        .ELSE                           ; if RAM >= 2k the variables below are in RAM
+SD_ORG     .equ SD_BUF_END+2            ; 1 word guard
     .ENDIF
 
     .org SD_ORG
@@ -402,20 +392,20 @@ SD_ORG     .equ SD_BUF_END+2    ; 1 word guard
 ; FAT FileSystemInfos
 ; ---------------------------------------
 FATtype         .equ SD_ORG+0
-BS_FirstSectorL .equ SD_ORG+2  ; init by SD_Init, used by RW_Sector_CMD
-BS_FirstSectorH .equ SD_ORG+4  ; init by SD_Init, used by RW_Sector_CMD
-OrgFAT1         .equ SD_ORG+6  ; init by SD_Init,
-FATSize         .equ SD_ORG+8  ; init by SD_Init,
-OrgFAT2         .equ SD_ORG+10 ; init by SD_Init,
-OrgRootDIR      .equ SD_ORG+12 ; init by SD_Init, (FAT16 specific)
-OrgClusters     .equ SD_ORG+14 ; init by SD_Init, Sector of Cluster 0
-SecPerClus      .equ SD_ORG+16 ; init by SD_Init, byte size
+BS_FirstSectorL .equ SD_ORG+2           ; init by SD_Init, used by RW_Sector_CMD
+BS_FirstSectorH .equ SD_ORG+4           ; init by SD_Init, used by RW_Sector_CMD
+OrgFAT1         .equ SD_ORG+6           ; init by SD_Init,
+FATSize         .equ SD_ORG+8           ; init by SD_Init,
+OrgFAT2         .equ SD_ORG+10          ; init by SD_Init,
+OrgRootDIR      .equ SD_ORG+12          ; init by SD_Init, (FAT16 specific)
+OrgClusters     .equ SD_ORG+14          ; init by SD_Init, Sector of Cluster 0
+SecPerClus      .equ SD_ORG+16          ; init by SD_Init, byte size
 
 SD_LOW_LEVEL    .equ SD_ORG+18
 ; ---------------------------------------
 ; SD command
 ; ---------------------------------------
-SD_CMD_FRM      .equ SD_LOW_LEVEL   ; SD_CMDx inverted frame ${CRC7,ll,LL,hh,HH,CMD}
+SD_CMD_FRM      .equ SD_LOW_LEVEL       ; SD_CMDx inverted frame ${CRC7,ll,LL,hh,HH,CMD}
 SectorL         .equ SD_LOW_LEVEL+6
 SectorH         .equ SD_LOW_LEVEL+8
 
@@ -429,11 +419,11 @@ SD_FAT_LEVEL    .equ SD_LOW_LEVEL+14
 ; ---------------------------------------
 ; FAT entry
 ; ---------------------------------------
-ClusterL        .equ SD_FAT_LEVEL     ;
-ClusterH        .equ SD_FAT_LEVEL+2   ;
-NewClusterL     .equ SD_FAT_LEVEL+4   ;
-NewClusterH     .equ SD_FAT_LEVEL+6   ;
-CurFATsector    .equ SD_FAT_LEVEL+8   ; current FATSector of last free cluster
+ClusterL        .equ SD_FAT_LEVEL       ;
+ClusterH        .equ SD_FAT_LEVEL+2     ;
+NewClusterL     .equ SD_FAT_LEVEL+4     ;
+NewClusterH     .equ SD_FAT_LEVEL+6     ;
+CurFATsector    .equ SD_FAT_LEVEL+8     ; current FATSector of last free cluster
 
 ; ---------------------------------------
 ; DIR entry
@@ -550,14 +540,14 @@ T           .reg    R11
 S           .reg    R12
 
 ; Forth virtual machine
-IP          .reg    R13      ; interpretative pointer
-TOS         .reg    R14      ; first PSP cell
-PSP         .reg    R15      ; PSP = Parameters Stack Pointer (stack data)
+IP          .reg    R13     ; interpretative pointer
+TOS         .reg    R14     ; first PSP cell
+PSP         .reg    R15     ; PSP = Parameters Stack Pointer (stack data)
 
 
-mNEXT       .MACRO          ; return for low level words (written in assembler)
+mNEXT       .MACRO          ; return (inverted round trip) for low level words (written in assembler)
             MOV @IP+,PC     ; 4 fetch code address into PC, IP=PFA
-            .ENDM           ; 4 cycles,1word = ITC -2cycles -1 word
+            .ENDM           ; 4 cycles, 1word = ITC -2cycles -1 word
 
 NEXT        .equ    4D30h   ; 4 MOV @IP+,PC
 
@@ -570,6 +560,8 @@ mSEMI       .MACRO
             MOV @IP+,PC
             .ENDM
 
+; that is obviously faster than the same sized "BR #EXIT,PC" !
+
 ;-------------------------------------------------------------------------------
 ; mDODOES  leave on parameter stack the PFA of a CREATE definition and execute Master word
 ;-------------------------------------------------------------------------------
@@ -676,10 +668,6 @@ DOCOL3      .equ    522Dh   ; 1 ADD #4,IP
 
     .ENDCASE ; DTC
 
-;-------------------------------------------------------------------------------
-; INTERPRETER LOGIC
-;-------------------------------------------------------------------------------
-
 ;https://forth-standard.org/standard/core/EXIT
 ;C EXIT     --      exit a colon definition; CALL #EXIT performs ASMtoFORTH (10 cycles)
 ;                                            JMP #EXIT performs EXIT
@@ -688,15 +676,6 @@ EXIT        MOV @RSP+,IP        ; 2 pop previous IP (or next PC) from return sta
             MOV @IP+,PC         ; 4 = NEXT
                                 ; 6 = ITC - 2
 
-;Z lit      -- x    fetch inline literal to stack
-; This is the execution part of LITERAL.
-            FORTHWORD "LIT"
-lit         SUB #2,PSP          ; 2  push old TOS..
-            MOV TOS,0(PSP)      ; 3  ..onto stack
-            MOV @IP+,TOS        ; 2  fetch new TOS value
-            MOV @IP+,PC         ; 4  NEXT
-                                ; 11 = ITC - 2
-
 ;-------------------------------------------------------------------------------
 ; STACK OPERATIONS
 ;-------------------------------------------------------------------------------
@@ -708,6 +687,14 @@ DUP         SUB #2,PSP          ; 2  push old TOS..
             MOV TOS,0(PSP)      ; 3  ..onto stack
             mNEXT               ; 4
 
+; https://forth-standard.org/standard/core/TwoDUP
+; 2DUP   x1 x2 -- x1 x2 x1 x2   dup top 2 cells
+            FORTHWORD "2DUP"
+TWODUP      MOV     TOS,-2(PSP)     ;3 -- x1 x2 x x2
+            MOV     @PSP,-4(PSP)    ;4 -- x1 x2 x1 x2
+            SUB     #4,PSP          ;1 -- x1 x x x2
+            mNEXT
+
 ;https://forth-standard.org/standard/core/qDUP
 ;C ?DUP     x -- 0 | x x    DUP if nonzero
             FORTHWORD "?DUP"
@@ -723,7 +710,9 @@ DROP        MOV @PSP+,TOS       ; 2
 
 ;https://forth-standard.org/standard/core/NIP
 ;C NIP      x1 x2 -- x2         Drop the first item below the top of stack
+    .IFDEF ANS_CORE_COMPLEMENT
             FORTHWORD "NIP"
+    .ENDIF
 NIP         ADD #2,PSP          ; 1
             mNEXT               ; 4
 
@@ -735,23 +724,6 @@ SWAP        MOV @PSP,W          ; 2
             MOV W,TOS           ; 1
             mNEXT               ; 4
 
-;https://forth-standard.org/standard/core/OVER
-;C OVER    x1 x2 -- x1 x2 x1
-            FORTHWORD "OVER"
-OVER        MOV TOS,-2(PSP)     ; 3 -- x1 (x2) x2
-            MOV @PSP,TOS        ; 2 -- x1 (x2) x1
-            SUB #2,PSP          ; 1 -- x1 x2 x1
-            mNEXT               ; 4
-
-;https://forth-standard.org/standard/core/ROT
-;C ROT    x1 x2 x3 -- x2 x3 x1
-            FORTHWORD "ROT"
-ROT         MOV @PSP,W          ; 2 fetch x2
-            MOV TOS,0(PSP)      ; 3 store x3
-            MOV 2(PSP),TOS      ; 3 fetch x1
-            MOV W,2(PSP)        ; 3 store x2
-            mNEXT               ; 4
-
 ;https://forth-standard.org/standard/core/toR
 ;C >R    x --   R: -- x   push to return stack
             FORTHWORD ">R"
@@ -767,14 +739,6 @@ RFROM       SUB #2,PSP          ; 1
             MOV @RSP+,TOS       ; 2
             mNEXT               ; 4
 
-;https://forth-standard.org/standard/core/RFetch
-;C R@    -- x     R: x -- x   fetch from rtn stk
-            FORTHWORD "R@"
-RFETCH      SUB #2,PSP
-            MOV TOS,0(PSP)
-            MOV @RSP,TOS
-            mNEXT
-
 ;https://forth-standard.org/standard/core/DEPTH
 ;C DEPTH    -- +n        number of items on stack, must leave 0 if stack empty
             FORTHWORD "DEPTH"
@@ -786,46 +750,9 @@ DECPSP      SUB #2,PSP        ; post decrement stack...
             mNEXT
 
 ;-------------------------------------------------------------------------------
-; MEMORY OPERATIONS
-;-------------------------------------------------------------------------------
-
-;https://forth-standard.org/standard/core/Fetch
-;C @       a-addr -- x   fetch cell from memory
-            FORTHWORD "@"
-FETCH       MOV @TOS,TOS
-            mNEXT
-
-;https://forth-standard.org/standard/core/Store
-;C !        x a-addr --   store cell in memory
-            FORTHWORD "!"
-STORE       MOV @PSP+,0(TOS)    ;4
-            MOV @PSP+,TOS       ;2
-            mNEXT               ;4
-
-;https://forth-standard.org/standard/core/CFetch
-;C C@     c-addr -- char   fetch char from memory
-            FORTHWORD "C@"
-CFETCH      MOV.B @TOS,TOS      ;2
-            mNEXT               ;4
-
-;https://forth-standard.org/standard/core/CStore
-;C C!      char c-addr --    store char in memory
-            FORTHWORD "C!"
-CSTORE      MOV.B @PSP+,0(TOS)  ;4
-            ADD #1,PSP          ;1
-            MOV @PSP+,TOS       ;2
-            mNEXT
-
-;-------------------------------------------------------------------------------
 ; ARITHMETIC OPERATIONS
 ;-------------------------------------------------------------------------------
 
-;https://forth-standard.org/standard/core/Plus
-;C +       n1/u1 n2/u2 -- n3/u3     add n1+n2
-            FORTHWORD "+"
-PLUS        ADD @PSP+,TOS
-            mNEXT
-
 ;https://forth-standard.org/standard/core/Minus
 ;C -      n1/u1 n2/u2 -- n3/u3      n3 = n1-n2
             FORTHWORD "-"
@@ -848,7 +775,7 @@ ONEMINUS    SUB #1,TOS
 
 ;https://forth-standard.org/standard/double/DABS
 ;C DABS     d1 -- |d1|     absolute value
-            FORTHWORD "DABS"
+;            FORTHWORD "DABS"
 DABBS       AND #-1,TOS     ; clear V, set N
             JGE DABBSEND    ; if positive
 DNEGATE     XOR #-1,0(PSP)
@@ -858,6 +785,23 @@ DNEGATE     XOR #-1,0(PSP)
 DABBSEND    mNEXT
 
 ;-------------------------------------------------------------------------------
+; MEMORY OPERATIONS
+;-------------------------------------------------------------------------------
+
+;https://forth-standard.org/standard/core/Fetch
+;C @       a-addr -- x   fetch cell from memory
+            FORTHWORD "@"
+FETCH       MOV @TOS,TOS
+            mNEXT
+
+;https://forth-standard.org/standard/core/Store
+;C !        x a-addr --   store cell in memory
+            FORTHWORD "!"
+STORE       MOV @PSP+,0(TOS)    ;4
+            MOV @PSP+,TOS       ;2
+            mNEXT               ;4
+
+;-------------------------------------------------------------------------------
 ; COMPARAISON OPERATIONS
 ;-------------------------------------------------------------------------------
 
@@ -873,66 +817,25 @@ ZEROEQUAL   SUB #1,TOS      ; borrow (clear cy) if TOS was 0
             FORTHWORD "0<"
 ZEROLESS    ADD TOS,TOS     ;1 set carry if TOS negative
             SUBC TOS,TOS    ;1 TOS=-1 if carry was clear
-            XOR #-1,TOS     ;1 TOS=-1 if carry was set
+INVERT      XOR #-1,TOS     ;1 TOS=-1 if carry was set
             mNEXT
 
 ;https://forth-standard.org/standard/core/Equal
 ;C =      x1 x2 -- flag         test x1=x2
             FORTHWORD "="
 EQUAL       SUB @PSP+,TOS   ;2
-            JZ TOSTRUE      ;2
-TOSFALSE    MOV #0,TOS      ;1
+            JZ INVERT       ;2
+TOSFALSE    AND #0,TOS      ;1 flag Z = 1
             mNEXT           ;4
 
 ;https://forth-standard.org/standard/core/Uless
 ;C U<    u1 u2 -- flag       test u1<u2, unsigned
             FORTHWORD "U<"
-ULESS       MOV @PSP+,W     ;2
-            SUB TOS,W       ;1 u1-u2 in W, carry clear if borrow
-            JC TOSFALSE     ;  unsigned
-TOSTRUE     MOV #-1,TOS     ;1
-            mNEXT           ;4
-
-;https://forth-standard.org/standard/core/less
-;C <      n1 n2 -- flag        test n1<n2, signed
-            FORTHWORD "<"
-LESS        MOV @PSP+,W     ;2 W=n1
-            SUB TOS,W       ;1 W=n1-n2 flags set
-            JL TOSTRUE      ;2 signed
-            JGE TOSFALSE    ;2 --> +5
-
-;https://forth-standard.org/standard/core/more
-;C >     n1 n2 -- flag         test n1>n2, signed
-            FORTHWORD ">"
-GREATER     SUB @PSP+,TOS   ;2 TOS=n2-n1
-            JL TOSTRUE      ;2 signed
-            JGE TOSFALSE    ;2 --> +5
-
-;-------------------------------------------------------------------------------
-; SYSTEM  CONSTANTS
-;-------------------------------------------------------------------------------
-
-;https://forth-standard.org/standard/core/BL
-;C BL      -- char            an ASCII space
-            FORTHWORD "BL"
-FBLANK       mDOCON
-            .word   32
-
-;-------------------------------------------------------------------------------
-; SYSTEM VARIABLES
-;-------------------------------------------------------------------------------
-
-;https://forth-standard.org/standard/core/BASE
-;C BASE    -- a-addr       holds conversion radix
-            FORTHWORD "BASE"
-FBASE       mDOCON
-            .word   BASE    ; VARIABLE address in RAM space
-
-;https://forth-standard.org/standard/core/STATE
-;C STATE   -- a-addr       holds compiler state
-            FORTHWORD "STATE"
-FSTATE      mDOCON
-            .word   STATE   ; VARIABLE address in RAM space
+ULESS       SUB @PSP+,TOS   ;2
+            JNC TOSFALSE    ;2 unsigned
+            JZ ULESSEND     ;2
+            MOV #-1,TOS     ;1 flag Z = 0
+ULESSEND    mNEXT           ;4
 
 ;-------------------------------------------------------------------------------
 ; ANS complement OPTION
@@ -954,11 +857,6 @@ FSTATE      mDOCON
 LESSNUM     MOV #HOLD_BASE,&HP
             mNEXT
 
-;https://forth-standard.org/standard/core/UMDivMOD
-; UM/MOD   udlo|udhi u1 -- r q   unsigned 32/16->r16 q16
-            FORTHWORD "UM/MOD"
-UMSLASHMOD  PUSH #DROP          ;3 as return address for MU/MOD
-
 ; unsigned 32-BIT DiViDend : 16-BIT DIVisor --> 32-BIT QUOTient, 16-BIT REMainder
 ; 2 times faster if DVDhi = 0 (it's the general case)
 
@@ -972,15 +870,14 @@ UMSLASHMOD  PUSH #DROP          ;3 as return address for MU/MOD
 ; Y     = QUOThi        = ud2hi     = ud2hi
 ; rDODOES = count
 
-; MU/MOD        DVDlo DVDhi DIVlo -- REMlo QUOTlo QUOThi, also used by fixpoint and #
 MUSMOD      MOV TOS,T           ;1 T = DIVlo
             MOV 2(PSP),S        ;3 S = DVDlo
             MOV @PSP,TOS        ;2 TOS = DVDhi
 MUSMOD1     MOV #0,W            ;1  W = REMlo = 0
-MUSMOD2     MOV #32,rDODOES     ;2  init loop count
-; -----------------------------------------
+            MOV #32,rDODOES     ;2  init loop count
             CMP #0,TOS          ;1  DVDhi=0 ?
             JNZ MDIV1           ;2  no
+; -----------------------------------------
             RRA rDODOES         ;1  yes:loop count / 2
             MOV S,TOS           ;1      DVDhi <-- DVDlo
             MOV #0,S            ;1      DVDlo <-- 0
@@ -1030,9 +927,9 @@ NUMS        mDOCOL
             .word   NUM         ;       X=QUOTlo
             FORTHtoASM          ;
             SUB #2,IP           ;1      restore NUM return
-            CMP #0,X            ;1      test ud2lo first (result generally false)
+            CMP #0,X            ;1      test ud2lo first (generally <>0)
             JNZ NUM1            ;2
-            CMP #0,TOS          ;1      then test ud2hi (result generally true)
+            CMP #0,TOS          ;1      then test ud2hi (generally =0)
             JNZ NUM1            ;2
             mSEMI               ;6 10 words, about 241/417 cycles/char
 
@@ -1062,57 +959,30 @@ SIGN        CMP #0,TOS
 
 ;https://forth-standard.org/standard/double/Dd
 ;C D.     dlo dhi --           display d (signed)
-            FORTHWORD "D."
+;            FORTHWORD "D."
 DDOT         mDOCOL
             .word   LESSNUM,DUP,TOR,DABBS,NUMS
-            .word   RFROM,SIGN,NUMGREATER,TYPE,SPACE,EXIT
+            .word   RFROM,SIGN,NUMGREATER,TYPE
+            .word   FBLANK,EMIT,EXIT
 
 ;https://forth-standard.org/standard/core/Ud
 ;C U.    u --           display u (unsigned)
             FORTHWORD "U."
-UDOT        MOV #0,Y
-UDOT1       SUB #2,PSP      ; convert n|u to d|ud
-            MOV TOS,0(PSP)
-            MOV Y,TOS
-            JMP DDOT
+UDOT        MOV #0,Y        ; 1
+UDOT1       SUB #2,PSP      ; convert n|u to d|ud
+            MOV TOS,0(PSP)  ; 3
+            MOV Y,TOS       ; 1
+            JMP DDOT        ; 2
 
 ;https://forth-standard.org/standard/core/d
 ;C .     n --           display n (signed)
             FORTHWORD "."
-DOT         CMP #0,TOS
+DOT         CMP #0,TOS      ; 
             JGE UDOT
             MOV #-1,Y
             JMP UDOT1
 
 ;-------------------------------------------------------------------------------
-; DICTIONARY MANAGEMENT
-;-------------------------------------------------------------------------------
-
-;https://forth-standard.org/standard/core/HERE
-;C HERE    -- addr      returns memory ptr
-            FORTHWORD "HERE"
-HERE        SUB #2,PSP
-            MOV TOS,0(PSP)
-            MOV &DDP,TOS
-            mNEXT
-
-;https://forth-standard.org/standard/core/ALLOT
-;C ALLOT   n --         allocate n bytes
-            FORTHWORD "ALLOT"
-ALLOT       ADD TOS,&DDP
-            MOV @PSP+,TOS
-            mNEXT
-
-;https://forth-standard.org/standard/core/CComma
-;C C,   char --        append char
-            FORTHWORD "C,"
-CCOMMA      MOV &DDP,W
-            MOV.B TOS,0(W)
-            ADD #1,&DDP
-            MOV @PSP+,TOS
-            mNEXT
-
-;-------------------------------------------------------------------------------
 ; BRANCH and LOOP OPERATORS
 ;-------------------------------------------------------------------------------
 
@@ -1153,10 +1023,9 @@ xploop      ADD TOS,0(RSP)  ;4 increment INDEX by TOS value
 xloopnext   BIT #100h,SR    ;2 is overflow bit set?
             JZ BRAN         ;2 no overflow = loop
             ADD #2,IP       ;1 overflow = loop done, skip branch ofs
-UNXLOOP     ADD #4,RSP      ;1 empty RSP
+            ADD #4,RSP      ;1 empty RSP
             mNEXT           ;4 16~ taken or not taken xloop/loop
 
-
 ;Z (loop)   R: sys1 sys2 --  | sys1 sys2
 ;                        run-time code for LOOP
 ; Add 1 to the loop index.  If loop terminates, clean up the
@@ -1165,11 +1034,6 @@ UNXLOOP     ADD #4,RSP      ;1 empty RSP
 xloop       ADD #1,0(RSP)   ;4 increment INDEX
             JMP xloopnext   ;2
 
-;https://forth-standard.org/standard/core/UNLOOP
-;C UNLOOP   --   R: sys1 sys2 --  drop loop parms
-            FORTHWORD "UNLOOP"
-UNLOOP      JMP UNXLOOP
-
 ;https://forth-standard.org/standard/core/I
 ;C I        -- n   R: sys1 sys2 -- sys1 sys2
 ;C                  get the innermost loop index
@@ -1180,16 +1044,6 @@ II          SUB #2,PSP      ;1 make room in TOS
             SUB 2(RSP),TOS  ;3
             mNEXT           ;4 13~
 
-;https://forth-standard.org/standard/core/J
-;C J        -- n   R: 4*sys -- 4*sys
-;C                  get the second loop index
-            FORTHWORD "J"
-JJ          SUB #2,PSP      ; make room in TOS
-            MOV TOS,0(PSP)
-            MOV 4(RSP),TOS  ; index = loopctr - fudge
-            SUB 6(RSP),TOS
-            mNEXT
-
 ; ------------------------------------------------------------------------------
 ; TERMINAL I/O, input part
 ; ------------------------------------------------------------------------------
@@ -1213,61 +1067,6 @@ KEYLOOP     BIT #UCRXIFG,&TERM_IFG  ; loop if bit0 = 0 in interupt flag register
 ; INTERPRETER INPUT, the kernel of kernel !
 ;-------------------------------------------------------------------------------
 
-    .IFDEF SD_CARD_LOADER
-    .include "forthMSP430FR_SD_ACCEPT.asm"
-    .ENDIF
-
-    .IFDEF DEFER_ACCEPT
-
-;https://forth-standard.org/standard/core/ACCEPT
-;C ACCEPT  addr addr len -- addr len'  get line at addr to interpret len' chars
-            FORTHWORD "ACCEPT"
-ACCEPT      MOV @PC+,PC             ;3 Code Field Address (CFA) of ACCEPT
-PFAACCEPT   .word   BODYACCEPT      ;  Parameter Field Address (PFA) of ACCEPT
-BODYACCEPT                          ;  BODY of ACCEPT = default execution of ACCEPT
-
-    .ELSE
-
-;https://forth-standard.org/standard/core/ACCEPT
-;C ACCEPT  addr addr len -- addr len'  get line at addr to interpret len' chars
-            FORTHWORD "ACCEPT"
-ACCEPT
-
-    .ENDIF
-
-    .IFDEF  HALFDUPLEX  ; to use FAST FORTH with half duplex input terminal (bluetooth or wifi connexion)
-
-    .include "forthMSP430FR_HALFDUPLEX.asm"
-
-    .ELSE   ; to use FAST FORTH with full duplex terminal (USBtoUART bridge)
-
-; con speed of TERMINAL link, there are three bottlenecks :
-; 1- time to send XOFF/RTS_high on CR (CR+LF=EOL), first emergency.
-; 2- the char loop time,
-; 3- the time between sending XON/RTS_low and clearing UCRXIFG on first received char,
-; everything must be done to reduce these times, taking into account the necessity of switching to SLEEP (LPMx mode).
-; ----------------------------------;
-; ACCEPT part I prepare TERMINAL_INT;
-; ----------------------------------;
-            MOV #ENDACCEPT,S        ;2              S = XOFF_ret
-            MOV #AKEYREAD1,T        ;2              T = XON_ret
-            PUSHM #3,IP             ;5              PUSHM IP,S,T       r-- ACCEPT_ret XOFF_ret XON_ret
-            MOV TOS,W               ;1 -- addr len
-            MOV @PSP,TOS            ;2 -- org ptr                                             )
-            ADD TOS,W               ;1 -- org ptr   W=Bound                                   )
-            MOV #0Dh,T              ;2              T = 'CR' to speed up char loop in part II  > prepare stack and registers for TERMINAL_INT use
-            MOV #20h,S              ;2              S = 'BL' to speed up char loop in part II ) 
-            MOV #AYEMIT_RET,IP      ;2              IP = return for YEMIT                     )
-            BIT #UCRXIFG,&TERM_IFG  ;3              RX_Int ?
-            JZ ACCEPTNEXT           ;2              no : case of quiet input terminal
-            MOV &TERM_RXBUF,Y       ;3              yes: clear RX_Int
-            CMP #0Ah,Y              ;2                   received char = LF ? (end of downloading ?)
-            JNZ RXON                ;2                   no : send XON then RET to AKEYREAD1 to process first char of new line.
-ACCEPTNEXT  ADD #2,RSP              ;1              replace XON_ret = AKEYREAD1 by XON_ret = SLEEP
-            MOV #SLEEP,X            ;2
-            PUSHM #5,IP             ;7              PUSH IP,S,T,W,X  r-- ACCEPT_ret XOFF_ret YEMIT_ret 'BL' 'CR' bound XON_ret
-; ----------------------------------;
-
 ; ----------------------------------;
 RXON                                ;
 ; ----------------------------------;
@@ -1301,8 +1100,8 @@ RXOFF                               ;
     ASMWORD "SLEEP"                 ;   may be redirected
 SLEEP       MOV @PC+,PC             ;3  Code Field Address (CFA) of SLEEP
 PFASLEEP    .word   BODYSLEEP       ;   Parameter Field Address (PFA) of SLEEP, with default value
-BODYSLEEP   BIS &LPM_MODE,SR        ;3  enter in LPMx sleep mode with GIE=1
-;            NOP                     ;
+BODYSLEEP   CALL #RXON              ;4
+            BIS &LPM_MODE,SR        ;3  enter in LPMx sleep mode with GIE=1
 ; ----------------------------------;   default FAST FORTH mode (for its input terminal use) : LPM0.
 
 ;###############################################################################################################
@@ -1327,11 +1126,67 @@ BODYSLEEP   BIS &LPM_MODE,SR        ;3  enter in LPMx sleep mode with GIE=1
 ;           to force return to SLEEP.
 ;           or (bad idea ? previous SR flags are lost) simply : ADD #2 RSP, then RET instead of RETI
 
-
 ; ==================================;
             JMP SLEEP               ;2  here is the return for any interrupts, else TERMINAL_INT  :-)
 ; ==================================;
 
+    .IFDEF SD_CARD_LOADER
+    .include "forthMSP430FR_SD_ACCEPT.asm"
+    .ENDIF
+
+    .IFDEF DEFER_ACCEPT
+
+;https://forth-standard.org/standard/core/ACCEPT
+;C ACCEPT  addr addr len -- addr len'  get line at addr to interpret len' chars
+            FORTHWORD "ACCEPT"
+ACCEPT      MOV @PC+,PC             ;3 Code Field Address (CFA) of ACCEPT
+PFAACCEPT   .word   BODYACCEPT      ;  Parameter Field Address (PFA) of ACCEPT
+BODYACCEPT                          ;  BODY of ACCEPT = default execution of ACCEPT
+
+    .ELSE
+
+;https://forth-standard.org/standard/core/ACCEPT
+;C ACCEPT  addr addr len -- addr len'  get line at addr to interpret len' chars
+            FORTHWORD "ACCEPT"
+ACCEPT
+
+    .ENDIF
+
+    .IFDEF  HALFDUPLEX  ; to use FAST FORTH with half duplex input terminal (bluetooth or wifi connexion)
+
+    .include "forthMSP430FR_HALFDUPLEX.asm"
+
+    .ELSE   ; to use FAST FORTH with full duplex terminal (USBtoUART bridge)
+
+; con speed of TERMINAL link, there are three bottlenecks :
+; 1- time to send XOFF/RTS_high on CR (CR+LF=EOL), first emergency.
+; 2- the char loop time,
+; 3- the time between sending XON/RTS_low and clearing UCRXIFG on first received char,
+; everything must be done to reduce these times, taking into account the necessity of switching to SLEEP (LPMx mode).
+; ----------------------------------;
+; ACCEPT part I prepare TERMINAL_INT;
+; ----------------------------------;
+            MOV #ENDACCEPT,S        ;2              S = XOFF_ret
+            MOV #AKEYREAD1,T        ;2              T = XON_ret
+            PUSHM #3,IP             ;5              PUSHM IP,S,T       r-- ACCEPT_ret XOFF_ret XON_ret
+            MOV TOS,W               ;1 -- addr len
+            MOV @PSP,TOS            ;2 -- org ptr                                             )
+            ADD TOS,W               ;1 -- org ptr   W=Bound                                   )
+            MOV #0Dh,T              ;2              T = 'CR' to speed up char loop in part II  > prepare stack and registers for TERMINAL_INT use
+            MOV #20h,S              ;2              S = 'BL' to speed up char loop in part II ) 
+            MOV #AYEMIT_RET,IP      ;2              IP = return for YEMIT                     )
+            BIT #UCRXIFG,&TERM_IFG  ;3              RX_Int ?
+            JZ ACCEPTNEXT           ;2              no : case of quiet input terminal
+            MOV &TERM_RXBUF,Y       ;3              yes: clear RX_Int
+            CMP #0Ah,Y              ;2                   received char = LF ? (end of downloading ?)
+            JNZ RXON                ;2                   no : send XON then RET to AKEYREAD1 to process this first char of new line.
+; ----------------------------------;
+ACCEPTNEXT  ADD #2,RSP              ;1              replace XON_ret = AKEYREAD1 by XON_ret = SLEEP
+            PUSHM #4,IP             ;6              PUSH IP,S,T,W  r-- ACCEPT_ret XOFF_ret YEMIT_ret 'BL' 'CR' bound XON_ret
+            JMP SLEEP               ;2              which calls RXON before falling down to LPMx mode
+; ----------------------------------;
+
+
 ; **********************************;
 TERMINAL_INT                        ; <--- TEMR RX interrupt vector, delayed by the LPMx wake up time
 ; **********************************;      if wake up time increases, max bauds rate decreases...
@@ -1423,7 +1278,7 @@ BODYEMIT    MOV TOS,Y               ;  output character to the default output: T
     .IFDEF DEFER_ACCEPT
 
 ; CIB           --  addr          of Current Input Buffer
-            FORTHWORD "CIB"         ; constant, may be redirected as SDIB_ORG by OPEN.
+;            FORTHWORD "CIB"         ; constant, may be redirected as SDIB_ORG by OPEN.
 FCIB        mDOCON                  ; Code Field Address (CFA) of FCIB 
 PFACIB      .WORD    TIB_ORG        ; Parameter Field Address (PFA) of FCIB
 
@@ -1440,12 +1295,12 @@ REFILL      SUB #6,PSP              ;2
 
 ; REFILL    accept one line from input and leave org len of input buffer
 ; : REFILL TIB DUP TIB_LEN ACCEPT ;   -- TIB len    shared by QUIT and [ELSE]
-REFILL      SUB #6,PSP              ;2
-            MOV TOS,4(PSP)          ;3
-            MOV #TIB_LEN,TOS        ;2
-            MOV #TIB_ORG,0(PSP)     ;4
-            MOV @PSP,2(PSP)         ;4
-            JMP ACCEPT              ;2
+REFILL      SUB #6,PSP              ;2     -- x x x x
+            MOV TOS,4(PSP)          ;3     -- Saved_TOS x x TOS
+            MOV #TIB_LEN,TOS        ;2     -- Saved_TOS x x TIB_LEN 
+            MOV #TIB_ORG,0(PSP)     ;4     -- Saved_TOS x TIB TIB_LEN
+            MOV @PSP,2(PSP)         ;4     -- Saved_TOS TIB TIB TIB_LEN
+            JMP ACCEPT              ;2     -- TIB LEN
 
     .ENDIF
 
@@ -1461,49 +1316,25 @@ NOECHO      MOV #NEXT,&YEMIT        ;  NEXT = 4030h = MOV @IP+,PC
             MOV #1,&LINE            ;
             mNEXT
 
-;https://forth-standard.org/standard/core/SPACE
-;C SPACE   --               output a space
-            FORTHWORD "SPACE"
-SPACE       SUB #2,PSP              ;1
-            MOV TOS,0(PSP)          ;3
-            MOV #20h,TOS            ;2
-            JMP EMIT                ;17~  23~
-
-;https://forth-standard.org/standard/core/SPACES
-;C SPACES   n --            output n spaces
-            FORTHWORD "SPACES"
-SPACES      CMP #0,TOS
-            JZ ONEDROP
-            PUSH IP
-            MOV #SPACESNEXT,IP
-            JMP SPACE               ;25~
-SPACESNEXT  FORTHtoASM
-            SUB #2,IP               ;1
-            SUB #1,TOS              ;1
-            JNZ SPACE               ;25~ ==> 27~ by space ==> 2.963 MBds @ 8 MHz
-DROPEXIT    MOV @RSP+,IP            ;
-ONEDROP     MOV @PSP+,TOS           ; --         drop n
-            mNEXT                   ;
-
 ;https://forth-standard.org/standard/core/TYPE
 ;C TYPE    adr len --     type line to terminal
             FORTHWORD "TYPE"
 TYPE        CMP #0,TOS
             JZ TWODROP              ; abort fonction
-            PUSHM #2,TOS            ;4 R-- len,IP
-            MOV #TYPE_NEXT,IP
-TYPELOOP    MOV @PSP,Y              ;2 -- adr x       ; 30~ char loop
-            MOV.B @Y+,TOS           ;2
+            PUSHM #2,TOS            ;4                  R-- len IP
+            MOV #TYPE_NEXT,IP       ;
+TYPELOOP    MOV @PSP,Y              ;2 -- adr x         30~ char loop
+            MOV.B @Y+,TOS           ;2 -- adr char
             MOV Y,0(PSP)            ;3 -- adr+1 char
-            SUB #2,PSP              ;1 emit consumes one cell
+            SUB #2,PSP              ;1 -- adr+1 x char  emit consumes one cell
             JMP EMIT                ;15
-TYPE_NEXT   FORTHtoASM
+TYPE_NEXT   FORTHtoASM              ;  -- adr+1 x
             SUB #2,IP               ;1
-            SUB #1,2(RSP)           ;4 len-1
+            SUB #1,2(RSP)           ;4 -- adr+1 x       R-- len-1 IP
             JNZ TYPELOOP            ;2
             POPM #2,TOS             ;4 POPM IP,TOS
 TWODROP     ADD #2,PSP              ;
-            MOV @PSP+,TOS           ; --
+ONEDROP     MOV @PSP+,TOS           ; --
             mNEXT                   ;
 
 ;https://forth-standard.org/standard/core/CR
@@ -1520,6 +1351,14 @@ BODYCR      mDOCOL                  ;  send CR to the default output device
 ; STRINGS PROCESSING
 ; ------------------------------------------------------------------------------
 
+;Z lit      -- x    fetch inline literal to stack
+; This is the execution part of LITERAL.
+;            FORTHWORD "LIT"
+lit         SUB #2,PSP          ; 2  push old TOS..
+            MOV TOS,0(PSP)      ; 3  ..onto stack
+            MOV @IP+,TOS        ; 2  fetch new TOS value
+            MOV @IP+,PC         ; 4  NEXT
+
 ;Z (S")     -- addr u   run-time code for S"
 ; get address and length of string.
 XSQUOTE     SUB #4,PSP              ; 1 -- x x TOS      ; push old TOS on stack
@@ -1539,15 +1378,13 @@ SQUOTE      MOV #0,&CAPS            ; CAPS OFF
             .word   lit,XSQUOTE,COMMA
 SQUOTE1     .word   lit,'"',WORDD   ; -- c-addr (= HERE)
             FORTHtoASM
-            MOV @RSP+,IP
             MOV #32,&CAPS           ; CAPS ON
             MOV.B @TOS,TOS          ; -- u
-            SUB #1,TOS              ; -- u-1 bytes
-            ADD TOS,&DDP
+            ADD #1,TOS              ; -- u+1
+            BIT #1,TOS              ;1 carry set if odd
+            ADDC TOS,&DDP
+DROPEXIT    MOV @RSP+,IP
             MOV @PSP+,TOS
-CELLPLUSALIGN
-            BIT #1,&DDP             ;3 carry set if odd
-            ADDC #2,&DDP            ;4  +2/+3 bytes
             mNEXT
 
 ;https://forth-standard.org/standard/core/Dotq
@@ -1561,24 +1398,78 @@ DOTQUOTE    mDOCOL
 ; INTERPRETER
 ;-------------------------------------------------------------------------------
 
+    .IFNDEF MSP430ASSEMBLER
+
 ;https://forth-standard.org/standard/core/WORD
 ;C WORD   char -- addr        Z=1 if len=0
-; parse a word delimited by char separator, by default "word" is capitalized ([CAPS]=32)
+; parse a word delimited by char separator; by default (CAPS=$20), this "word" is capitalized
+; when used by S" (CAPS=0), this "word" will not be capitalized.
             FORTHWORD "WORD"
-WORDD       MOV #SOURCE_LEN,S       ;2 -- separator
-            MOV @S+,X               ;2               X = str_len
-            MOV @S+,W               ;2               W = str_org
-            ADD W,X                 ;1               W = str_org    X = str_org + str_len = str_end
-            ADD @S+,W               ;2               W = str_org + >IN = str_ptr    X = str_end
-            MOV @S,Y                ;2 -- separator  W = str_ptr    X = str_end     Y = HERE, as dst_ptr
-SKIPCHARLOO CMP W,X                 ;1               str_ptr = str_end ?
-            JZ EOL_END              ;2 -- separator  if yes : End Of Line !
-            CMP.B @W+,TOS           ;2               does char = separator ?
-            JZ SKIPCHARLOO          ;2 -- separator  if yes
-SCANWORD    SUB #1,W                ;1
+WORDD       
+SKIPCHAR    MOV #SOURCE_LEN,S       ;2 -- separator
+            MOV @S+,X               ;2              X = str_len
+            MOV @S+,W               ;2              W = str_org
+            ADD W,X                 ;1              W = str_org    X = str_org + str_len = str_end
+            ADD @S+,W               ;2              W = str_org + >IN = str_ptr    X = str_end
+            MOV @S,Y                ;2              W = str_ptr    X = str_end     Y = HERE, as dst_ptr
+SKIPCHARLOO CMP W,X                 ;1              str_ptr = str_end ?
+            JZ SCANWORDEND          ;2              if yes : End Of Line !
+            CMP.B @W+,TOS           ;2              does char = separator ?
+            JZ SKIPCHARLOO          ;2              if yes; 7~ loop
+            SUB #1,W                ;1
+SKIPCHARNXT
+SCANWORD    MOV #96,T               ;2              T = 96 = ascii(a)-1 (test value set in a register before SCANWORD loop)
+SCANWORDLOO MOV.B S,0(Y)            ;3              first time make room in dst for word length; next, put char @ dst.
+            CMP W,X                 ;1              str_ptr = str_end ?
+            JZ SCANWORDEND          ;2              if yes
+            MOV.B @W+,S             ;2
+            CMP.B S,TOS             ;1              does char = separator ?
+            JZ SCANWORDEND          ;2              if yes
+            ADD #1,Y                ;1              increment dst just before test loop
+            CMP.B S,T               ;1              char U< 'a' ?  ('a'-1 U>= char) this condition is tested at each loop
+            JC SCANWORDLOO          ;2              15~ upper case char loop
+            CMP.B #123,S            ;2              char U>= 'z'+1 ?
+            JC SCANWORDLOO          ;2              if yes
+            SUB.B &CAPS,S           ;3              convert lowercase char to uppercase if CAPS ON (CAPS=32)
+            JMP SCANWORDLOO         ;2              24~ lower case char loop
+SCANWORDEND SUB &SOURCE_ORG,W       ;3 -- separator W=str_ptr - str_org = new >IN (first char separator next)
+            MOV W,&TOIN             ;3              update >IN
+            MOV &DDP,TOS            ;3 -- c-addr
+            SUB TOS,Y               ;1              Y=Word_Length Z=1
+            MOV.B Y,0(TOS)          ;3
+            mNEXT                   ;4 -- c-addr    40 words      Z=1 <==> lenght=0 <==> EOL
+
+    .ELSE
+
+;;Z SKIP      char -- addr           ; skip all occurring character 'char' in input stream
+SKIP        MOV.B #0,Y               ; used by assembler to parse input stream
+            JMP SKIPCHAR
+
+;https://forth-standard.org/standard/core/WORD
+;C WORD   char -- addr        Z=1 if len=0
+; parse a word delimited by char separator; by default (CAPS=$20), this "word" is capitalized
+; when used by S" (CAPS=0), this "word" will not be capitalized.
+            FORTHWORD "WORD"
+WORDD       MOV.B TOS,Y             ;1
+SKIPCHAR    MOV &SOURCE_LEN,X       ;3 -- separator
+            MOV &SOURCE_ORG,W       ;3              W = str_org
+            ADD W,X                 ;1              W = str_org    X = str_org + str_len = str_end
+            ADD &TOIN,W             ;3              W = str_org + >IN = str_ptr    X = str_end
+SKIPCHARLOO CMP W,X                 ;1              str_ptr = str_end ?
+            JZ SKIPCHARNXT          ;2              if yes : End Of Line !
+            CMP.B @W+,TOS           ;2              does char = separator ?
+            JZ SKIPCHARLOO          ;2              if yes; 7~ loop
+            SUB #1,W                ;1
+SKIPCHARNXT AND.B Y,TOS             ;1
+            JNZ SCANWORD            ;2
+SKIPEND:    MOV W,TOS               ;1 -- addr
+            SUB &SOURCE_ORG,W       ;3 -- addr       W=Ptr-Org=Toin
+            MOV W,&TOIN             ;3
+            mNEXT                   ;4
+
+SCANWORD    MOV &DDP,Y              ;3              Y = HERE, as dst_ptr
             MOV #96,T               ;2              T = 96 = ascii(a)-1 (test value set in a register before SCANWORD loop)
-SCANWORDLOO                         ; -- separator  15/24 cycles loop for upper/lower case char... write words in upper case !
-            MOV.B S,0(Y)            ;3              first time make room in dst for word length, then put char @ dst.
+SCANWORDLOO MOV.B S,0(Y)            ;3              first time make room in dst for word length; next, put char @ dst.
             CMP W,X                 ;1              str_ptr = str_end ?
             JZ SCANWORDEND          ;2              if yes
             MOV.B @W+,S             ;2
@@ -1591,12 +1482,13 @@ SCANWORDLOO                         ; -- separator  15/24 cycles loop for upper/
             JC SCANWORDLOO          ;2              if yes
             SUB.B &CAPS,S           ;3              convert lowercase char to uppercase if CAPS ON (CAPS=32)
             JMP SCANWORDLOO         ;2              24~ lower case char loop
-SCANWORDEND SUB &SOURCE_ORG,W       ;3 -- separator  W=str_ptr - str_org = new >IN (first char separator next)
-            MOV W,&TOIN             ;3               update >IN
-EOL_END     MOV &DDP,TOS            ;3 -- c-addr
-            SUB TOS,Y               ;1               Y=Word_Length
+SCANWORDEND SUB &SOURCE_ORG,W       ;3 -- separator W=str_ptr - str_org = new >IN (first char separator next)
+            MOV W,&TOIN             ;3              update >IN
+            MOV &DDP,TOS            ;3 -- c-addr
+            SUB TOS,Y               ;1              Y=Word_Length Z=1
             MOV.B Y,0(TOS)          ;3
-            mNEXT                   ;4 -- c-addr     40 words      Z=1 <==> lenght=0 <==> EOL
+            mNEXT                   ;4 -- c-addr    40 words      Z=1 <==> lenght=0 <==> EOL
+    .ENDIF
 
 ;https://forth-standard.org/standard/core/FIND
 ;C FIND   c-addr -- c-addr 0   if not found ; flag Z=1
@@ -1706,6 +1598,7 @@ TONUMEND    MOV S,0(PSP)            ;3 -- x x addr2 cnt2
 ;Z ?NUMBER  addr -- n|d -1  if convert ok ; flag Z=0, UF9=1 if double
 ;Z          addr -- addr 0  if convert ko ; flag Z=1
 QNUMBER     
+            BIC #UF9,SR             ;2                          reset flag UF9, before use as double number flag
             MOV &BASE,T             ;3                          T=BASE
             MOV #0,S                ;1                          S=sign of result
             PUSHM #3,IP             ;5 R-- IP sign base         PUSH IP,S,T
@@ -1902,6 +1795,7 @@ TONUMEND    MOV S,0(PSP)            ;3 -- ud2lo ud2hi adr2 count2
 ;Z          addr -- addr 0  if convert ko ; flag Z=1
 ;            FORTHWORD "?NUMBER"
 QNUMBER
+            BIC #UF9,SR             ;2                                  reset flag UF9, before use as double number flag
             MOV &BASE,T             ;3          T=BASE
             MOV #0,S                ;1
             PUSHM #3,IP             ;5          R-- IP sign base (push IP,S,T)
@@ -2014,22 +1908,41 @@ QNUMEND     mNEXT                   ;4                              TOS=-1 and Z
 ; ----------------------------------;128 words
     .ENDIF ; of Hardware/Software MPY
 
-;https://forth-standard.org/standard/core/EXECUTE
-;C EXECUTE   i*x xt -- j*x   execute Forth word at 'xt'
-            FORTHWORD "EXECUTE"
-EXECUTE     MOV TOS,W               ; 1 put word address into W
-            MOV @PSP+,TOS           ; 2 fetch new TOS
-            MOV W,PC                ; 3 fetch code address into PC
+;-------------------------------------------------------------------------------
+; DICTIONARY MANAGEMENT
+;-------------------------------------------------------------------------------
+
+;https://forth-standard.org/standard/core/HERE
+;C HERE    -- addr      returns memory ptr
+            FORTHWORD "HERE"
+HERE        SUB #2,PSP
+            MOV TOS,0(PSP)
+            MOV &DDP,TOS
+            mNEXT
 
 ;https://forth-standard.org/standard/core/Comma
 ;C ,    x --           append cell to dict
             FORTHWORD ","
 COMMA       MOV &DDP,W              ;3
-            ADD #2,&DDP             ;3
             MOV TOS,0(W)            ;3
+            ADD #2,&DDP             ;3
             MOV @PSP+,TOS           ;2
             mNEXT                   ;4 15~
 
+;https://forth-standard.org/standard/core/ALLOT
+;C ALLOT   n --         allocate n bytes
+            FORTHWORD "ALLOT"
+ALLOT       ADD TOS,&DDP
+            MOV @PSP+,TOS
+            mNEXT
+
+;https://forth-standard.org/standard/core/EXECUTE
+;C EXECUTE   i*x xt -- j*x   execute Forth word at 'xt'
+            FORTHWORD "EXECUTE"
+EXECUTE     MOV TOS,W               ; 1 put word address into W
+            MOV @PSP+,TOS           ; 2 fetch new TOS
+            MOV W,PC                ; 3 fetch code address into PC
+
     .IFDEF DOUBLE_NUMBERS           ; are recognized
 ;https://forth-standard.org/standard/core/LITERAL
 ;C LITERAL  n --        append single numeric literal if compiling state
@@ -2081,6 +1994,14 @@ SETIB       MOV TOS,&SOURCE_LEN     ; -- org len
             MOV #0,&TOIN            ;
             mNEXT                   ;
 
+;https://forth-standard.org/standard/core/BL
+;C BL      -- char            an ASCII space
+    .IFDEF ANS_CORE_COMPLEMENT
+            FORTHWORD "BL"
+    .ENDIF
+FBLANK       mDOCON
+            .word   32
+
 ;C INTERPRET    i*x addr u -- j*x      interpret given buffer
 ; This is the common factor of EVALUATE and QUIT.
 ; set addr u as input buffer then parse it word by word
@@ -2130,6 +2051,14 @@ EVALUATE    MOV #SOURCE_LEN,X       ;2
             MOV @RSP+,&SOURCE_LEN   ;4
             mSEMI
 
+;https://forth-standard.org/standard/core/STATE
+;C STATE   -- a-addr       holds compiler state
+    .IFDEF ANS_CORE_COMPLEMENT
+            FORTHWORD "STATE"
+    .ENDIF
+FSTATE      mDOCON
+            .word   STATE           ; VARIABLE address in RAM space
+
     .IFDEF DEFER_QUIT               ; defined in ThingsInFirst.inc
 
 QUIT0   MOV #0,&SAVE_SYSRSTIV       ; clear SAVE_SYSRSTIV, usefull for next ABORT...
@@ -2188,7 +2117,7 @@ QUIT2       .word   TYPE            ; display it
 QUIT2       .word   CR
     .ENDIF
             .word   REFILL          ; -- org len      refill input buffer from ACCEPT (one line)
-QUIT3       .word   SPACE           ;
+QUIT3       .word   FBLANK,EMIT     ;
 QUIT4       .word   INTERPRET       ; interpret this line|string
             .word   DEPTH,ZEROLESS  ; stack empty test
             .word   XSQUOTE         ; ABORT" stack empty! "
@@ -2231,33 +2160,24 @@ THREEDROP   ADD #4,PSP              ;
             MOV @PSP+,TOS           ;
             mNEXT                   ;
 ; ----------------------------------; QABORTYES = QABORT + 14
-QABORTYES   CALL #QAB_DEFER         ; init some variables, see WIPE
-; ----------------------------------;
-QABORT_SDCARD                       ; close all handles       
+QABORTYES   CALL #QAB_DEFER         ; init some variables, common part with WIPE, see WIPE
 ; ----------------------------------;
-    .IFDEF SD_CARD_LOADER           ;
-            MOV &CurrentHdl,T       ;
-QABORTCLOSE CMP #0,T                ;
-            JZ QABORTCLOSEND        ;
-            MOV.B #0,HDLB_Token(T)  ;
-            MOV @T,T                ;
-            JMP QABORTCLOSE         ;
-QABORTCLOSEND                       ;
-    .ENDIF                          ;
-; ----------------------------------;
-QABORT_TERM                         ; wait the end of downloading source file
-; ----------------------------------;
-            CALL #RXON              ; send XON and/or set RTS low
+QABORT_TERM CALL #RXON              ; resume downloading source file then wait the end of downloading.
 QABORTLOOP  BIC #UCRXIFG,&TERM_IFG  ; clear UCRXIFG
         MOV #int(frequency*2730),Y  ; 2730*frequency ==> 65520 @ 24MHz
-QABUSBLOOPJ MOV #8,X                ; 1~        <-------+ windows 10 seems very slow... ==> 2730*37 = 101ms delay
-            ADD X,X                 ; 1~                | linux seems very very slow... ==> 2730*69 = 188ms delay
+QABUSBLOOPJ MOV #8,X                ; 1~        <-------+ windows 10 seems very slow... ==> ((8*4)+4)*2730) = 98ms delay
 QABUSBLOOPI NOP                     ; 1~        <---+   |
-            SUB #1,X                ; 1~            |   | the loop must be longer than longuest existing silence on terminal
-            JNZ QABUSBLOOPI         ; 2~ 4~ loop ---+   | i.e. when USB driver refill they buffers.
+            SUB #1,X                ; 1~            |   | the QABUSBLOOPJ delay must be longer than this of OS of TERMINAL
+            JNZ QABUSBLOOPI         ; 2~ 4~ loop ---+   | to refill its USB buffer
             SUB #1,Y                ; 1~                |
-            JNZ QABUSBLOOPJ         ; 2~ 37~/69~ loop --+
-            BIT #UCRXIFG,&TERM_IFG  ; 4 new char in TERMRXBUF after delay for refill ?
+            JNZ QABUSBLOOPJ         ; 2~ 36~ loop ------+
+; QABUSBLOOPJ MOV #20,X               ; 2~        <-------+ linux with minicom seems very very slow... ==> ((20*4)+5)*2730 = 232ms delay
+; QABUSBLOOPI NOP                     ; 1~        <---+   |
+;             SUB #1,X                ; 1~            |   | the QABUSBLOOPJ delay must be longer than this of OS of TERMINAL
+;             JNZ QABUSBLOOPI         ; 2~ 4~ loop ---+   | to refill its USB buffer
+;             SUB #1,Y                ; 1~                |
+;             JNZ QABUSBLOOPJ         ; 2~ 85~ loop ------+
+            BIT #UCRXIFG,&TERM_IFG  ; 4 new char in TERMRXBUF after QABUSBLOOPJ delay ?
             JNZ QABORTLOOP          ; 2 yes, the input stream is still active: loop back
 ; ----------------------------------;
             mDOCOL                  ;
@@ -2365,14 +2285,6 @@ IMMEDIATE   MOV &LAST_NFA,W
             BIS.B #80h,0(W)
             mNEXT
 
-;https://forth-standard.org/standard/core/RECURSE
-;C RECURSE  --      recurse to current definition (compile current definition)
-            FORTHWORDIMM "RECURSE"  ; immediate
-RECURSE     MOV &DDP,X              ;
-            MOV &LAST_CFA,0(X)      ;
-            ADD #2,&DDP             ;
-            mNEXT
-
 ;https://forth-standard.org/standard/core/POSTPONE
             FORTHWORDIMM "POSTPONE" ; immediate
 POSTPONE    mDOCOL
@@ -2396,19 +2308,21 @@ SEMICOLON   CMP #0,&STATE           ; if interpret mode, semicolon becomes a com
 
     .IFDEF NONAME
 ;https://forth-standard.org/standard/core/ColonNONAME
-;CE :NONAME        -- xt
+; :NONAME        -- xt
         FORTHWORD ":NONAME"
-COLONNONAME SUB #2,PSP
+            PUSH #COLONNEXT         ; define COLONNEXT as the next of HEADERLESS
+HEADERLESS  SUB #2,PSP              ; common part of :NONAME and CODENNM
             MOV TOS,0(PSP)
-            MOV &DDP,TOS            ; -- xt     of this NONAME word
+            MOV &DDP,TOS            ; -- HERE
+            BIT #1,TOS              ;
+            ADDC #0,TOS             ; -- xt         aligned CFA of this NONAME or CODENNM word
             MOV TOS,W               ;  W=CFA
             MOV #PAIN,X             ;2 MOV Y,0(X) writes to PAIN read only register = first lure for semicolon REVEAL...
             MOV #PAOUT,Y            ;2 MOV @X,-2(Y) also writes to PAIN register = 2th lure for semicolon REVEAL...
-            CALL #HEADEREND         ; ...because we don't want write a preamble of this :NONAME definition in dictionnary!
+            JMP HEADEREND           ; ...because we don't want to write a preamble of this :NONAME definition in dictionnary!
     .ENDIF ; NONAME
 
-;-----------------------------------; common part of NONAME and :
-COLONNEXT
+COLONNEXT                           ; common part of :NONAME and :
     .SWITCH DTC
     .CASE 1
             MOV #DOCOL1,-4(W)       ; compile CALL rDOCOL
@@ -2424,21 +2338,20 @@ COLONNEXT
             ADD #4,&DDP
     .ENDCASE ; of DTC
             MOV #-1,&STATE          ; enter compiling state
-SAVE_PSP    MOV PSP,&LAST_PSP       ; save PSP for check compiling, used by QREVEAL
 NEXT_ADR    mNEXT
-;-----------------------------------;
 
 
 ;https://forth-standard.org/standard/core/Colon
 ;C : <name>     --      begin a colon definition
             FORTHWORD ":"
-COLON       PUSH #COLONNEXT         ; define COLONNEXT as RET from HEADER
+COLON       PUSH #COLONNEXT         ; define COLONNEXT as the next of HEADER
 
 ; HEADER        create an header for a new word. Max count of chars = 126
 ;               common code for DEFER, VARIABLE, CONSTANT, CREATE, :, MARKER, CODE, ASM.
 ;               doesn't link the created word in vocabulary.
-HEADER      mDOCOL
-            .word CELLPLUSALIGN     ;               align and make room for LFA
+HEADER      BIT #1,&DDP             ;3 carry set if odd
+            ADDC #2,&DDP            ;4 (DP+2|DP+3) bytes
+            mDOCOL
             .word FBLANK,WORDD      ;
             FORTHtoASM              ; -- HERE       HERE is the NFA of this new word
             MOV @RSP+,IP
@@ -2456,21 +2369,19 @@ HEADER      mDOCOL
             ADD TOS,X               ;               X=VOC_PFAx = thread x of VOC_PFA of CURRENT
     .ENDCASE
             MOV @PSP+,TOS           ; --
-            MOV #4030h,0(W)         ;               by default, HEADER create a DEFERred word: CFA = MOV @PC+,PC = BR mNEXT
-            MOV #NEXT_ADR,2(W)      ;               by default, HEADER create a DEFERred word: PFA = address of mNEXT to do nothing.
 
 HEADEREND   MOV Y,&LAST_NFA         ;               NFA --> LAST_NFA            used by QREVEAL, IMMEDIATE, MARKER
             MOV X,&LAST_THREAD      ;               VOC_PFAx --> LAST_THREAD    used by QREVEAL
             MOV W,&LAST_CFA         ;               HERE=CFA --> LAST_CFA       used by DOES>, RECURSE
+            MOV PSP,&LAST_PSP       ;               save PSP for check compiling, used by QREVEAL
             ADD #4,W                ;               by default make room for two words...
             MOV W,&DDP              ;   
-            RET                     ; 30 words, W is the new DDP value )
+            RET                     ; 33 words, W is the new DDP value )
                                     ;           X is LAST_THREAD       > used by VARIABLE, CONSTANT, CREATE, DEFER and :
                                     ;           Y is NFA               )
 
 ;;Z ?REVEAL   --      if no stack mismatch, link this new word in the CURRENT vocabulary
-;            FORTHWORD "REVEAL"     ; used by SEMICOLON and ENDCODE
-QREVEAL     CMP PSP,&LAST_PSP       ; Check SP with its saved value by :
+QREVEAL     CMP PSP,&LAST_PSP       ; Check SP with its saved value by :, :NONAME, CODE...
             JNZ BAD_CSP             ; if no stack mismatch.
 GOOD_CSP    MOV &LAST_NFA,Y         ; GOOD_CSP is the end of word MARKER
             MOV &LAST_THREAD,X      ;
@@ -2483,21 +2394,20 @@ BAD_CSP     mDOCOL
             .byte   15,"stack mismatch!"
 FQABORTYES  .word   QABORTYES
 
-;https://forth-standard.org/standard/core/VARIABLE
-;C VARIABLE <name>       --                      define a Forth VARIABLE
-            FORTHWORD "VARIABLE"
-VARIABLE    CALL #HEADER            ; W = DDP = CFA + 2 words
-            MOV #DOVAR,-4(W)        ;   CFA = DOVAR, PFA is undefined
-            JMP REVEAL              ;   to link created VARIABLE in vocabulary
+;https://forth-standard.org/standard/core/DEFER
+;C DEFER "<spaces>name"   --
+;Skip leading space delimiters. Parse name delimited by a space.
+;Create a definition for name with the execution semantics defined below.
 
-;https://forth-standard.org/standard/core/CONSTANT
-;C CONSTANT <name>     n --                      define a Forth CONSTANT (and also a Forth VALUE)
-            FORTHWORD "CONSTANT"
-CONSTANT    CALL #HEADER            ; W = DDP = CFA + 2 words
-            MOV #DOCON,-4(W)        ;   CFA = DOCON
-            MOV TOS,-2(W)           ;   PFA = n
-            MOV @PSP+,TOS
-            JMP REVEAL              ;   to link created CONSTANT in vocabulary
+;name Execution:   --
+;Execute the xt that name is set to execute, i.e. NEXT (nothing),
+;until the phrase ' word IS name is executed, causing a new value of xt to be assigned to name.
+
+            FORTHWORD "DEFER"
+DEFER       CALL #HEADER        ; --        W = DDP       
+            MOV #4030h,-4(W)     ;           by default, HEADER create a DEFERred word: CFA = MOV @PC+,PC = BR mNEXT
+            MOV #NEXT_ADR,-2(W)  ;           by default, HEADER create a DEFERred word: PFA = address of mNEXT to do nothing.
+            JMP REVEAL          ;           to link created VARIABLE in vocabulary
 
 ;https://forth-standard.org/standard/core/CREATE
 ;C CREATE <name>        --          define a CONSTANT with its next address
@@ -2517,19 +2427,6 @@ DOES        MOV &LAST_CFA,W         ; W = CFA of CREATEd word
             MOV IP,2(W)             ; replace PFA by the address after DOES> as execution address
             mSEMI                   ; exit of the new created word
 
-;https://forth-standard.org/standard/core/DEFER
-;C DEFER "<spaces>name"   --
-;Skip leading space delimiters. Parse name delimited by a space.
-;Create a definition for name with the execution semantics defined below.
-
-;name Execution:   --
-;Execute the xt that name is set to execute, i.e. NEXT (nothing),
-;until the phrase ' word IS name is executed, causing a new value of xt to be assigned to name.
-
-            FORTHWORD "DEFER"
-DEFER       PUSH #REVEAL        ; to link created DEFER word in vocabulary        
-            JMP HEADER          ; that create a secondary DEFERed word (whithout default code)
-
 ;https://forth-standard.org/standard/core/toBODY
 ; >BODY     -- addr      leave BODY of a CREATEd word
             FORTHWORD ">BODY"
@@ -2539,20 +2436,21 @@ DEFER       PUSH #REVEAL        ; to link created DEFER word in vocabulary
     .IFDEF MSP430ASSEMBLER
 
            FORTHWORD "CODE"     ; a CODE word must be finished with ENDCODE
-ASMCODE     CALL #HEADER        ;
-ASMCODE1    SUB #4,W            ; W = CFA
-            MOV W,&DDP          ; CFA --> DDP
+ASMCODE     CALL #HEADER        ; (that makes room for CFA and PFA)
+ASMCODE1    
+    .IFDEF EXTENDED_ASM
+            MOV #0,&RPT_WORD    ; clear RPT instruction
+    .ENDIF
+            SUB #4,&DDP         ; remove this room
             mDOCOL
-            .word   SAVE_PSP
             .word   ALSO,ASSEMBLER
             .word   EXIT
 
-    .IFDEF NONAME
-            FORTHWORD "CODENNM"  ; CODENoNaMe is the assembly counterpart of :NONAME
-CODENNM     mDOCOL
-            .word COLONNONAME,LEFTBRACKET
-            .word ASMCODE1,EXIT
-    .ENDIF
+        .IFDEF NONAME
+            FORTHWORD "CODENNM" ; CODENoNaMe is the assembly counterpart of :NONAME
+CODENNM     CALL #HEADERLESS    ; (that makes room for CFA and PFA)
+            JMP ASMCODE1
+        .ENDIF
 
             asmword "ENDCODE"   ; restore previous context and test PSP balancing
 ENDCODE     mDOCOL
@@ -2567,13 +2465,12 @@ ENDCODE     mDOCOL
 ; prohibited because it doesn't restore CURRENT.
 
             FORTHWORD "ASM"
-            MOV     &CURRENT,&SAV_CURRENT
             MOV     #BODYASSEMBLER,&CURRENT
             JMP     ASMCODE
 
             asmword "ENDASM"    ; end of an ASM word
-            MOV     &SAV_CURRENT,&CURRENT
-            JMP     ENDCODE
+            mDOCOL
+            .WORD   ENDCODE,DEFINITIONS,EXIT
 
 
 ; here are words used to switch from/to FORTH to/from ASSEMBLER
@@ -2616,11 +2513,11 @@ COLON2      MOV #-1,&STATE      ; enter in compile state
             JMP COLON1
     .ENDCASE
 
-             FORTHWORDIMM "HI2LO"   ; immediate, switch to low level, add ASSEMBLER context, set interpretation state
+            FORTHWORDIMM "HI2LO"   ; immediate, switch to low level, set interpretation state, add ASSEMBLER context
             mDOCOL
 HI2LO       .word   HERE,CELLPLUS,COMMA
             .word   LEFTBRACKET
-HI2LONEXT   .word   ALSO,ASSEMBLER
+            .word   ALSO,ASSEMBLER
             .word   EXIT
 
     .ENDIF ; MSP430ASSEMBLER
@@ -2734,19 +2631,6 @@ LOOPEND     MOV @PSP+,TOS
 PLUSLOOP    MOV #xploop,X
             JMP LOOPNEXT
 
-;https://forth-standard.org/standard/core/LEAVE
-;C LEAVE    --    L: -- adrs
-            FORTHWORDIMM "LEAVE"    ; immediate
-LEAV        MOV &DDP,W              ; compile three words
-            MOV #UNLOOP,0(W)        ; [HERE] = UNLOOP
-            MOV #BRAN,2(W)          ; [HERE+2] = BRAN
-            ADD #6,&DDP             ; [HERE+4] = After LOOP adr
-            ADD #2,&LEAVEPTR
-            ADD #4,W
-            MOV &LEAVEPTR,X
-            MOV W,0(X)              ; leave HERE+4 on LEAVEPTR stack
-            mNEXT
-
 ;https://forth-standard.org/standard/core/MOVE
 ;C MOVE    addr1 addr2 u --     smart move
 ;             VERSION FOR 1 ADDRESS UNIT = 1 CHAR
@@ -2783,18 +2667,17 @@ MOVE_X      mNEXT
 ;X VOCABULARY       -- create a vocabulary, up to 7 vocabularies in CONTEXT
 
     .IFDEF VOCABULARY_SET
-
             FORTHWORD "VOCABULARY"
 VOCABULARY  mDOCOL
             .word   CREATE
-    .SWITCH THREADS
-    .CASE   1
+        .SWITCH THREADS
+        .CASE   1
             .word   lit,0,COMMA             ; will keep the NFA of the last word of the future created vocabularies
-    .ELSECASE
+        .ELSECASE
             .word   lit,THREADS,lit,0,xdo
 VOCABULOOP  .word   lit,0,COMMA
             .word   xloop,VOCABULOOP
-    .ENDCASE
+        .ENDCASE
             .word   HERE                    ; link via LASTVOC the future created vocabulary
             .word   LIT,LASTVOC,DUP
             .word   FETCH,COMMA             ; compile [LASTVOC] to HERE+
@@ -2878,6 +2761,7 @@ BODYFORTH                               ; BODY of FORTH
             .word   lastforthword29
             .word   lastforthword30
             .word   lastforthword31
+    .ELSECASE
     .ENDCASE
             .word   voclink         ; here, voclink = 0
 voclink         .set    $-2
@@ -2954,6 +2838,7 @@ BODYASSEMBLER   .word   lastasmword ; here is the structure created by VOCABULAR
                 .word   lastasmword29
                 .word   lastasmword30
                 .word   lastasmword31
+    .ELSECASE
     .ENDCASE
                 .word   voclink
 voclink         .set    $-2
@@ -2992,16 +2877,6 @@ ONLY        MOV #0,&CONTEXT+2
 DEFINITIONS  MOV &CONTEXT,&CURRENT
             mNEXT
 
-; ------------------------------------------------------------------------------
-; forthMSP430FR :  CONDITIONNAL COMPILATION
-; ------------------------------------------------------------------------------
-    .IFDEF CONDCOMP
-        .include "forthMSP430FR_CONDCOMP.asm"
-
-        ; compile COMPARE [THEN] [ELSE] [IF] [UNDEFINED] [DEFINED] MARKER
-
-    .ENDIF
-; ------------------------------------------------------------------------------
 ;-------------------------------------------------------------------------------
 ; IMPROVED ON/OFF AND RESET
 ;-------------------------------------------------------------------------------
@@ -3069,18 +2944,18 @@ RST_HERE    MOV &LASTVOC,&INIVOC
 
         FORTHWORD "WIPE"            ; restore the program as it was in forthMSP430FR.txt file
 WIPE                                ; reset JTAG and BSL signatures   ; unlock JTAG, SBW and BSL
-        MOV #16,X                   ; max known SIGNATURES length = 16
-SIGNLOO SUB #2,X
-        MOV #-1,SIGNATURES(X)       ; reset signature; WARNING ! DON'T CHANGE THIS IMMEDIATE VALUE !
-        JNZ SIGNLOO
-        MOV #BODYSLEEP,&PFASLEEP    ;4 MOV #SLEEP,X ADD #4,X MOV X,-2(X), restore default background task
-        MOV #BODYWARM,&PFAWARM      ;4 ' WARM >BODY IS WARM, restore default WARM
+            MOV #16,X               ; max known SIGNATURES length = 16
+SIGNLOO     SUB #2,X
+            MOV #-1,SIGNATURES(X)   ; reset signature; WARNING ! DON'T CHANGE THIS IMMEDIATE VALUE !
+            JNZ SIGNLOO
+            MOV #BODYSLEEP,&PFASLEEP;4 MOV #SLEEP,X ADD #4,X MOV X,-2(X), restore default background task
+            MOV #BODYWARM,&PFAWARM  ;4 ' WARM >BODY IS WARM, restore default WARM
     .IFDEF DEFER_QUIT               ;  true if BOOTLOADER
-        MOV #BODYQUIT,&PFAQUIT      ;4 ' QUIT >BODY IS QUIT
+            MOV #BODYQUIT,&PFAQUIT  ;4 ' QUIT >BODY IS QUIT
     .ENDIF
-        MOV #lastvoclink,&INIVOC    ; reinit this 2 factory values
-        MOV #ROMDICT,&INIDP     
-        PUSH #RST_STATE             ; define the next of WIPE
+            MOV #lastvoclink,&INIVOC; reinit this 2 factory values
+            MOV #ROMDICT,&INIDP     
+            PUSH #RST_STATE         ; define the next of WIPE
 ;-----------------------------------; 
 ; WIPE, QABORT common subroutine    ; <--- ?ABORT calls here
 ;-----------------------------------; 
@@ -3088,10 +2963,21 @@ QAB_DEFER
         MOV #BODYEMIT,&PFAEMIT      ;4 ' EMIT >BODY IS EMIT   default console output
         MOV #BODYCR,&PFACR          ;4 ' CR >BODY IS CR       default CR
         MOV #BODYKEY,&PFAKEY        ;4 ' KEY >BODY IS KEY     default KEY
-    .IFDEF DEFER_ACCEPT             ;  true if SD_LOADER
+    .IFDEF DEFER_ACCEPT             ;  true if SD_CARD_LOADER
         MOV #BODYACCEPT,&PFAACCEPT  ;4 ' ACCEPT >BODY IS ACCEPT
         MOV #TIB_ORG,&PFACIB        ;4 TIB_ORG TO CIB  (Current Input Buffer)
     .ENDIF
+    .IFDEF SD_CARD_LOADER           ; close all handles 
+        MOV &CurrentHdl,T           ;
+QAB_CLOSE                           ;
+        CMP #0,T                    ;
+        JZ QAB_CLOSEND              ;
+        MOV.B #0,HDLB_Token(T)      ;
+        MOV @T,T                    ;
+        JMP QAB_CLOSE               ;
+QAB_CLOSEND                         ;
+    .ENDIF                          ;
+; ----------------------------------;
 ;-----------------------------------; 
 ; WIPE, QABORT, COLD common subrouti; <--- COLD, reset and PUC calls here
 ;-----------------------------------; 
@@ -3106,13 +2992,6 @@ RST_INIT
         MOV #RFROM,rDOVAR       
         MOV #xdocon,rDOCON
         MOV #xdodoes,rDODOES
-    .IFDEF MSP430ASSEMBLER
-        MOV #RAM_ASM_LEN,X          ; reset all 6 branch labels + SAVECURRENT + RPT_WORD if any
-CLR_RAM_ASM
-        SUB #2,X
-        MOV #0,RAM_ASM_ORG(X)       ;
-        JNZ CLR_RAM_ASM             ;
-    .ENDIF
         MOV #10,&BASE               ;4
         MOV #32,&CAPS               ; init CAPS ON
         RET
@@ -3127,43 +3006,41 @@ CLR_RAM_ASM
 WARM        MOV @PC+,PC             ;3  Code Field Address (CFA) of WARM
 PFAWARM     .word   BODYWARM        ;   Parameter Field Address of WARM, may be redirected.
 BODYWARM    MOV @PC+,IP             ; MOV [BODYWARM+2],IP
-            .word   WARMTYPE        ; define next step of WARM, examples: WARMTYPE, ABORT, BOOT...
+ENDOFWARM   .word   WARMTYPE        ; define next step of WARM, examples: WARMTYPE, ABORT, BOOT...
                                     ;
 ;=================================================================================
 ; WARM 1: activates I/O: inputs and outputs are active only here (hiZ before here)
 ;=================================================================================
-    BIC #LOCKLPM5,&PM5CTL0          ; activate all previous I/O settings (before I/O tests below).
+            BIC #LOCKLPM5,&PM5CTL0  ; activate all previous I/O settings (before I/O tests below).
                                     ; Moved in WARM area to be redirected in your app START routine, 
                                     ; enabling you full control of the I/O RESET state.
 ;=================================================================================
-    MOV &SAVE_SYSRSTIV,TOS          ;
-    CMP #0,TOS                      ; WARM event ?
-    JZ RST_SEL_END                  ; yes
+            MOV &SAVE_SYSRSTIV,TOS  ;
+            CMP #0,TOS              ; WARM event ?
+            JZ RST_SEL_END          ; yes
 ;---------------------------------------------------------------------------------
 ; RESET 7: test DEEP RESET before init TERMINAL I/O
 ;---------------------------------------------------------------------------------
-RST_EVENT
-    BIT.B #TXD,&TERM_IN             ; TERM_TXD wired to GND via 4k7 resistor ?
-    JNZ RST_TERM_IO                 ; no
-    XOR #-1,TOS                     ; yes : force DEEP_RST (RESET + WIPE)
-    ADD #1,TOS                      ;       to display SAVE_SYSRSTIV as negative value
+RST_EVENT   BIT.B #TXD,&TERM_IN     ; TERM_TXD wired to GND via 4k7 resistor ?
+            JNZ INITERMIO           ; no
+            XOR #-1,TOS             ; yes : force DEEP_RST (RESET + WIPE)
+            ADD #1,TOS              ;       to display SAVE_SYSRSTIV as negative value
 ;---------------------------------------------------------------------------------
 ; RESET 8: INIT TERMINAL I/O
 ;---------------------------------------------------------------------------------
-RST_TERM_IO                         ;
-    BIS.B #TERM_BUS,&TERM_SEL       ; Configure pins TXD & RXD for TERM_UART
+INITERMIO  BIS.B #TERM_BUS,&TERM_SEL; Configure pins TXD & RXD for TERM_UART
 ;---------------------------------------------------------------------------------
 ; RESET 9: INIT SD_Card
 ;---------------------------------------------------------------------------------
     .IFDEF SD_CARD_LOADER           ;
-        BIT.B #SD_CD,&SD_CDIN       ; SD_memory in SD_Card module ?
-        JNZ RST_SEL                 ; no
-        .IF RAM_LEN < 2048          ; case of MSP430FR57xx : SD datas are in FRAM
-            MOV #SD_LEN,X           ;                        not initialised by RESET.
-ClearSDdata SUB #2,X                ; 1
-            MOV #0,SD_ORG(X)        ; 3 
-            JNZ ClearSDdata         ; 2
-        .ENDIF
+            BIT.B #SD_CD,&SD_CDIN   ; SD_memory in SD_Card module ?
+            JNZ RST_SEL             ; no
+            .IF RAM_LEN < 2048      ; case of MSP430FR57xx : SD datas are in FRAM
+                MOV #SD_LEN,X       ;                        not initialised by RESET.
+ClearSDdata     SUB #2,X            ; 1
+                MOV #0,SD_ORG(X)    ; 3 
+                JNZ ClearSDdata     ; 2
+            .ENDIF
     .include "forthMSP430FR_SD_INIT.asm"; no use IP,TOS
     .ENDIF
 ;---------------------------------------------------------------------------------
@@ -3186,20 +3063,21 @@ WARMTYPE    .word   XSQUOTE         ;
             .word   TYPE            ;
             .word   DOT             ; display signed SAVE_SYSRSTIV
             .word   XSQUOTE
-            .byte   31,"FastForth ",VER," (C)J.M.Thoorens "
+            .byte   25,"FastForth ©J.M.Thoorens "
             .word   TYPE
-            .word   LIT,SIGNATURES,HERE,MINUS,UDOT
+            .word   LIT,FRAM_FULL,HERE,MINUS,UDOT
             .word   XSQUOTE         ;
-            .byte   11,"bytes free ";
+            .byte   10,"bytes free" ;
             .word   BRAN,QABORT_DISPLAY  ;
 
 ;Z COLD     --      performs a software reset
-        FORTHWORD "COLD"
-COLD    BIT #1,&TERM_STATW      ;
-        JNZ COLD                ; loop back while TERM_UART is busy
-        MOV #0A504h,&PMMCTL0    ; performs BOR (SYSRSTIV = #6) reset @ next address
-;        MOV #0A508h,&PMMCTL0    ; performs POR (SYSRSTIV = #20) reset @ next address
+            FORTHWORD "COLD"        
+COLD        BIT #1,&TERM_STATW      ;
+            JNZ COLD                ; loop back while TERM_UART is busy
+            MOV #0A504h,&PMMCTL0    ; performs BOR (SYSRSTIV = #6)
+;            MOV #0A508h,&PMMCTL0    ; performs POR (SYSRSTIV = #20)
 
+            .word   WARMTYPE        ; default value for ENDOFWARM
 ;---------------------------------------------------------------------------------
 ; RESET 1: Initialisation limited to FastForth usage : I/O, RAM, RTC
 ;          all unused I/O are set as input with pullup resistor
@@ -3246,60 +3124,71 @@ VECTORLOOP  SUB #2,X                    ;1
             PUSH #WARM                  ; return for RST_INIT
             JMP RST_INIT
 
+; ------------------------------------------------------------------------------
+; forthMSP430FR :  CONDITIONNAL COMPILATION
+; ------------------------------------------------------------------------------
+    .IFDEF CONDCOMP
+        .include "forthMSP430FR_CONDCOMP.asm"
+
+        ; compile COMPARE [THEN] [ELSE] [IF] [UNDEFINED] [DEFINED] MARKER
+
+    .ENDIF
 ;-------------------------------------------------------------------------------
 ; ASSEMBLER OPTION
 ;-------------------------------------------------------------------------------
     .IFDEF MSP430ASSEMBLER
         .IFDEF EXTENDED_ASM
-        .include "forthMSP430FR_EXTD_ASM.asm"
+            .include "forthMSP430FR_EXTD_ASM.asm"
         .ELSE
-        .include "forthMSP430FR_ASM.asm"
+            .include "forthMSP430FR_ASM.asm"
         .ENDIF
     .ENDIF
 
-
+;-------------------------------------------------------------------------------
+; UTILITY WORDS OPTION
+;-------------------------------------------------------------------------------
+    .IFDEF UTILITY
+        .include "ADDON/UTILITY.asm"
+    .ENDIF
 
 ;-------------------------------------------------------------------------------
 ; FIXED POINT OPERATORS OPTION
 ;-------------------------------------------------------------------------------
     .IFDEF FIXPOINT
-    .include "ADDON/FIXPOINT.asm"
+        .include "ADDON/FIXPOINT.asm"
     .ENDIF
 
 ;-------------------------------------------------------------------------------
 ; SD CARD FAT OPTIONS
 ;-------------------------------------------------------------------------------
     .IFDEF SD_CARD_LOADER
-    .include "forthMSP430FR_SD_LowLvl.asm"  ; SD primitives
-    .include "forthMSP430FR_SD_LOAD.asm"    ; SD LOAD driver
-    ;-----------------------------------------------------------------------
-    ; SD TOOLS
-    ;-----------------------------------------------------------------------
-        .IFDEF SD_TOOLS
-        .include "ADDON/SD_TOOLS.asm"
-        .ENDIF
+        .include "forthMSP430FR_SD_LowLvl.asm"  ; SD primitives
+        .include "forthMSP430FR_SD_LOAD.asm"    ; SD LOAD driver
     ;---------------------------------------------------------------------------
     ; SD CARD READ WRITE
     ;---------------------------------------------------------------------------
         .IFDEF SD_CARD_READ_WRITE
-        .include "forthMSP430FR_SD_RW.asm"  ; SD Read/Write driver
+            .include "forthMSP430FR_SD_RW.asm"  ; SD Read/Write driver
+        .ENDIF
+    ;-----------------------------------------------------------------------
+    ; SD TOOLS
+    ;-----------------------------------------------------------------------
+        .IFDEF SD_TOOLS
+            .include "ADDON/SD_TOOLS.asm"
         .ENDIF
-    .ENDIF
-
-;-------------------------------------------------------------------------------
-; UTILITY WORDS OPTION
-;-------------------------------------------------------------------------------
-    .IFDEF UTILITY
-    .include "ADDON/UTILITY.asm"
     .ENDIF
 
 ;-------------------------------------------------------------------------------
 ; ADD HERE YOUR CODE TO BE INTEGRATED IN KERNEL (protected against WIPE)
 ;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
+;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
+;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
 
 
 
 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 ; ADD HERE YOUR CODE TO BE INTEGRATED IN KERNEL (protected against WIPE)
 ;-------------------------------------------------------------------------------
 
index e0f35a3..2846132 100644 (file)
 
 ; example : POPM #6,IP   pop Y,X,W,T,S,IP registers from return stack
 
-;;Z SKIP      char -- addr               ; skip all occurring character 'char' in input stream
-;            FORTHWORD "SKIP"            ; used by assembler to parse input stream
-SKIP:       MOV     #SOURCE_LEN,Y       ;
-            MOV     @Y+,X               ; -- char       X=length
-            MOV     @Y,W                ; -- char       X=length    W=org
-            ADD     W,X                 ; -- char       X=End       W=org
-            ADD     &TOIN,W             ; -- char       X=End       W=ptr
-SKIPLOOP:   CMP     W,X                 ; -- char       ptr=End ?
-            JZ      SKIPEND             ; -- char       yes
-            CMP.B   @W+,TOS             ; -- char       does character match?
-            JZ      SKIPLOOP            ; -- char       yes
-SKIPNEXT:   SUB     #1,W                ; -- char
-SKIPEND:    MOV     W,TOS               ; -- addr
-            SUB     @Y,W                ; -- addr       W=Ptr-Org=Toin
-            MOV     W,&TOIN             ;
-            mNEXT
-
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : search argument "xxxx", IP is free
 ; ----------------------------------------------------------------------
 
-SearchARG                               ; separator -- n|d or abort" not found"
-; ----------------------------------------------------------------------
-; Search ARG of "#xxxx,"                ; <== PARAM10
-; Search ARG of "&xxxx,"                ; <== PARAM111
-; Search ARG of "xxxx(REG),"            ; <== PARAM130
-; Search ARG of ",&xxxx"                ; <== PARAM111 <== PARAM20
-; Search ARG of ",xxxx(REG)"            ; <== PARAM210
-            PUSHM #2,S                  ;                   PUSHM S,T
-            ASMtoFORTH                  ; -- separator      search word first
-            .word   WORDD,FIND          ; -- c-addr
-            .word   QTBRAN,SearchARGW   ; -- c-addr         if found
-            .word   QNUMBER             ;
-            .word   QFBRAN,NotFound     ; -- c-addr         ABORT if not found
-FsearchEnd  .word   SearchEnd           ; -- value          goto end if number found
-SearchARGW  FORTHtoASM                  ; -- xt             xt = CFA
-            MOV     @TOS,X
-QDOVAR      CMP     #DOVAR,X
-            JNZ     QDOCON
-            ADD     #2,TOS              ; remplace CFA by PFA for VARIABLE words
-            JMP     SearchEnd
-QDOCON      CMP     #DOCON,X
-            JNZ     QDODOES
-            MOV     2(TOS),TOS          ; remplace CFA by [PFA] for CONSTANT (and CREATEd) words
-            JMP     SearchEnd
-QDODOES     CMP     #DODOES,X
-            JNZ     SearchEnd
-            ADD     #4,TOS              ; leave BODY address for DOES words
-SearchEnd   POPM    #2,S                ; POPM T,S
-            RET                         ;
+;SearchARG                           ; separator -- n|d or abort" not found"
+;; Search ARG of "#xxxx,"            ; <== PARAM10
+;; Search ARG of "&xxxx,"            ; <== PARAM111
+;; Search ARG of "xxxx(REG),"        ; <== PARAM130
+;; Search ARG of ",&xxxx"            ; <== PARAM111 <== PARAM20
+;; Search ARG of ",xxxx(REG)"        ; <== PARAM210
+;            PUSHM #2,S              ;                   PUSHM S,T as OPCODE, OPCODEADR
+;            ASMtoFORTH              ; -- separator      search word first
+;            .word   WORDD,FIND      ; -- addr
+;            .word QTBRAN,SearchARGW ; -- addr           if word found
+;            .word   QNUMBER         ;
+;            .word   QFBRAN,NotFound ; -- addr           ABORT if not found
+;FSearchEnd  .word   SearchEnd       ; -- value          goto SearchEnd if number found
+;SearchARGW  FORTHtoASM              ; -- xt             xt = CFA
+;            MOV     @TOS+,X         ; -- PFA
+;QDODOES     SUB     #DODOES,X       ;                   DODOES = 1284h
+;            JNZ     QDOCON          ;
+;            ADD     #2,TOS          ; -- BODY           leave BODY address for DOES words
+;            JMP     SearchEnd       ;
+;QDOCON      CMP     #1,X            ; -- PFA            DOCON = 1285h
+;            JNZ     QDOVAR          ;
+;            MOV     @TOS,TOS        ; -- cte            replace PFA by [PFA] for CONSTANT and CREATE words
+;            JMP     SearchEnd       ;
+;QDOVAR      CMP     #2,X            ; -- PFA            DOVAR = 1286h
+;            JZ      SearchEnd       ;                   if DOVAR nothing to do
+;            SUB     #2,TOS          ; -- CFA            replace PFA by CFA for all other words
+;SearchEnd   POPM    #2,S            ;                   POPM T,S
+;            RET                     ;
+
+SearchARG                           ; separator -- n|d or abort" not found"
+; Search ARG of "#xxxx,"            ; <== PARAM10
+; Search ARG of "&xxxx,"            ; <== PARAM111
+; Search ARG of "xxxx(REG),"        ; <== PARAM130
+; Search ARG of ",&xxxx"            ; <== PARAM111 <== PARAM20
+; Search ARG of ",xxxx(REG)"        ; <== PARAM210
+            PUSHM #2,S              ;                   PUSHM S,T as OPCODE, OPCODEADR
+            ASMtoFORTH              ; -- separator      search word first
+            .word   WORDD,FIND      ; -- addr
+            .word QTBRAN,SearchARGW ; -- addr           if word found
+            .word   QNUMBER         ;
+            .word   QFBRAN,NotFound ; -- addr           ABORT if not found
+FSearchEnd  .word   SearchEnd       ; -- value          goto SearchEnd if number found
+SearchARGW  FORTHtoASM              ; -- xt             xt = CFA
+            MOV     @TOS+,X         ; -- PFA
+QDOVAR      SUB     #DOVAR,X        ;                   DOVAR = 1286h
+            JZ      SearchEnd       ;
+            ADD     #1,X            ; -- PFA            DOCON = 1285h
+            JNZ     QDODOES         ;
+            MOV     @TOS,TOS        ; -- cte
+            JMP     SearchEnd       ;
+QDODOES     ADD     #2,TOS          ; -- BODY           leave BODY address for DOES words
+            ADD     #1,X            ;                   DODOES = 1284h
+            JZ      SearchEnd       ;        
+            SUB     #4,TOS          ; -- CFA
+SearchEnd   POPM    #2,S            ;                   POPM T,S
+            RET                     ;
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : search REG
 ; ----------------------------------------------------------------------
 
-; compute "xxxx(REG),"          ; <== PARAM130
-; compute ",xxxx(REG)"          ; <== PARAM210
-ComputeARGParenREG
-            MOV #'(',TOS        ; -- "("        as WORD separator to find xxxx of "xxxx(REG),"
-            CALL #SearchARG     ; -- xxxx       aborted if not found
+; compute arg of "xxxx(REG),"       ;               <== PARAM130, sep=','
+; compute arg of ",xxxx(REG)"       ;               <== PARAM210, sep=' '
+ComputeARGParenREG                  ; sep -- Rn
+            MOV #'(',TOS            ; -- "("        as WORD separator to find xxxx of "xxxx(REG),"
+            CALL #SearchARG         ; -- xxxx       aborted if not found
             MOV &DDP,X
             ADD #2,&DDP
-            MOV TOS,0(X)        ; -- xxxx       compile xxxx
-            MOV #')',TOS        ; -- ")"        prepare separator to search REG of "xxxx(REG)"
-
-; search REG of "xxxx(REG),"    separator = ')'  ;
-; search REG of ",xxxx(REG)"    separator = ')'  ;
-; search REG of "@REG,"         separator = ','  ; <== PARAM120
-; search REG of "@REG+,"        separator = '+'  ; <== PARAM121
-; search REG of "REG,"          separator = ','  ; <== PARAM13
-; search REG of ",REG"          separator = ' '  ; <== PARAM21
-
-SearchREG   PUSHM #2,S          ;               PUSHM S,T
-            PUSH &TOIN          ; -- separator  save >IN
-            ADD #1,&TOIN        ;               skip "R"
-            ASMtoFORTH          ;               search xx of Rxx
-            .word WORDD,QNUMBER ;
-            .word QFBRAN,NOTaREG; -- xxxx       if Not a Number
-            FORTHtoASM          ; -- c-addr     number is found
-            ADD #2,RSP          ;               remove >IN
-            CMP #16,TOS         ; -- 000R       register > 15 ?
-            JHS BOUNDERROR      ;               yes : abort
-            JLO SearchEnd       ; -- 000R       Z=0 ==> found
-
-NOTaREG     FORTHtoASM          ; -- c-addr     Z=1
-            MOV @RSP+,&TOIN     ; -- c-addr          restore >IN
-            JMP SearchEnd       ; -- c_addr     Z=1 ==> not a register 
-
+            MOV TOS,0(X)            ; -- xxxx       compile xxxx
+            MOV #')',TOS            ; -- ")"        prepare separator to search REG of "xxxx(REG)"
+
+; search REG of "xxxx(REG),"    separator = ')' 
+; search REG of ",xxxx(REG)"    separator = ')' 
+; search REG of "@REG,"         separator = ',' <== PARAM120
+; search REG of "@REG+,"        separator = '+' <== PARAM121
+; search REG of "REG,"          separator = ',' <== PARAM13
+; search REG of ",REG"          separator = BL  <== PARAM21
+
+SearchREG   PUSHM #2,S              ;                   PUSHM S,T as OPCODE, OPCODEADR
+            PUSH &TOIN              ; -- sep        save >IN
+            ADD #1,&TOIN            ;               skip "R"
+            ASMtoFORTH              ;               search xx of Rxx
+            .word WORDD,QNUMBER     ;
+            .word QFBRAN,NOTaREG    ; -- xxxx       if Not a Number
+            FORTHtoASM              ; -- Rn         number is found
+            ADD #2,RSP              ;               remove >IN
+            CMP #16,TOS             ; -- Rn       
+            JHS BOUNDERROR          ;               abort if Rn out of bounds
+            JLO SearchEnd           ; -- Rn         Z=0 ==> found
+
+NOTaREG     FORTHtoASM              ; -- addr       Z=1
+            MOV @RSP+,&TOIN         ; -- addr       restore >IN
+            JMP SearchEnd           ; -- addr       Z=1 ==> not a register 
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : INTERPRET FIRST OPERAND
@@ -138,167 +147,126 @@ NOTaREG     FORTHtoASM          ; -- c-addr     Z=1
 
 ; PARAM1     separator --                   ; parse input buffer until separator and compute first operand of opcode
                                             ; sep is comma for src and space for dst .
-
-PARAM1      mDOCOL                          ; -- sep
-            .word   FBLANK,SKIP             ; -- sep c-addr
-            FORTHtoASM                      ; -- sep c-addr
-            MOV     #0,S                    ; -- sep c-addr        reset ASMTYPE
-            MOV     &DDP,T                  ; -- sep c-addr        T=OPCODEADR (opcode is preset to its address !)
-            ADD     #2,&DDP                 ; -- sep c-addr        cell allot for opcode
-            MOV.B   @TOS,W                  ; -- sep c-addr        W=first char of instruction code
-            MOV     @PSP+,TOS               ; -- sep               W=c-addr
-            CMP.B   #'#',W                  ; -- sep               W=first char
+PARAM1      mDOCOL                  ; -- sep        OPCODES types I|V sep = ','  OPCODES types II|VI sep = ' '
+            .word   FBLANK,SKIP     ; -- sep addr
+            FORTHtoASM              ; -- sep addr
+            MOV     #0,S            ; -- sep addr   reset OPCODE
+            MOV     &DDP,T          ; -- sep addr   HERE --> OPCODEADR (opcode is preset to its address !)
+            ADD     #2,&DDP         ; -- sep addr   cell allot for opcode
+            MOV.B   @TOS,W          ; -- sep addr   W=first char of instruction code
+            MOV     @PSP+,TOS       ; -- sep        W=c-addr
+            CMP.B   #'#',W          ; -- sep        W=first char
             JNE     PARAM11
-
 ; "#" found : case of "#xxxx,"
-PARAM10     ADD     #1,&TOIN                ; -- sep        skip # prefix
-            CALL    #SearchARG              ; -- xxxx       abort if not found
-
-PARAM100    CMP #0,TOS                      ; -- xxxx       = 0 ?
-            JNE PARAM101
-; case of "#0,"
-            MOV #0300h,S                    ; -- 0          example : MOV #0,dst <=> MOV R3,dst
-            JMP PARAMENDOF
-
-PARAM101    CMP #1,TOS                      ; -- xxxx       = 1 ?
-            JNE PARAM102
-; case of "#1,"
-            MOV #0310h,S                    ; -- 1          example : MOV #1,dst <=> MOV 0(R3),dst
-            JMP PARAMENDOF
-
-PARAM102    CMP #2,TOS                      ; -- xxxx       = 2 ?
-            JNE PARAM104
-; case of "#2,"
-            MOV #0320h,S                    ; -- 2          ASMTYPE = 0320h  example : MOV #2, <=> MOV @R3,
-            JMP PARAMENDOF
-
-PARAM104    CMP #4,TOS                      ; -- xxxx       = 4 ?
-            JNE PARAM108
-; case of "#4,"
-            MOV #0220h,S                    ; -- 4          ASMTYPE = 0220h  example : MOV #4, <=> MOV @SR,
-            JMP PARAMENDOF
-
-PARAM108    CMP #8,TOS                      ; -- xxxx       = 8 ?
-            JNE PARAM10M1
-; case of "#8,"
-            MOV #0230h,S                    ; -- 8          ASMTYPE = 0230h  example : MOV #8, <=> MOV @SR+,
-            JMP PARAMENDOF
-
-PARAM10M1   CMP #-1,TOS                     ; -- xxxx       = -1 ?
-            JNE PARAM1000
-; case of "#-1,"
-            MOV #0330h,S                    ; -- -1         ASMTYPE = 0330h  example : XOR #-1 <=> XOR @R3+,
-            JMP PARAMENDOF
-
-; case of all others "#xxxx,"               ; -- xxxx
-PARAM1000   MOV #0030h,S                    ; -- xxxx       add immediate code type : @PC+,
-
-; case of all others "#xxxx,"               ; -- xxxx
-; case of "&xxxx,"                          ; <== PARAM110
-; case of ",&xxxx"                          ; <== PARAM20
-StoreArg    MOV &DDP,X                      ; -- xxxx       don't use T=OPCODEADR
-            ADD #2,&DDP                     ;               cell allot for arg
-
-StoreTOS                                    ; <== TYPE1DOES
-            MOV TOS,0(X)                    ;               compile arg
-; endcase of all "&xxxx"                    ;
-; endcase of all "#xxxx"                    ; <== PARAM101,102,104,108,10M1
-; endcase of all "REG"|"@REG"|"@REG+"       ; <== PARAM124
-PARAMENDOF  MOV @PSP+,TOS                   ; --
-            MOV @RSP+,IP
-            mNEXT                           ; --
-; ------------------------------------------
-
-PARAM11     CMP.B   #'&',W                  ; -- sep
+PARAM10     ADD #1,&TOIN            ; -- sep        skip # prefix
+            CALL #SearchARG         ; -- xxxx       abort if not found
+            MOV #0300h,S            ;               OPCODE = 0300h : MOV #0,dst is coded MOV R3,dst
+            CMP #0,TOS              ; -- xxxx       #0 ?
+            JZ PARAMENDOF
+            MOV #0310h,S            ;               OPCODE = 0310h : MOV #1,dst is coded MOV 0(R3),dst
+            CMP #1,TOS              ; -- xxxx       #1 ?
+            JZ PARAMENDOF
+            MOV #0320h,S            ;               OPCODE = 0320h : MOV #2,dst is coded MOV @R3,dst
+            CMP #2,TOS              ; -- xxxx       #2 ?
+            JZ PARAMENDOF
+            MOV #0220h,S            ;               OPCODE = 0220h : MOV #4,dst is coded MOV @R2,dst
+            CMP #4,TOS              ; -- xxxx       #4 ?
+            JZ PARAMENDOF
+            MOV #0230h,S            ;               OPCODE = 0230h : MOV #8,dst is coded MOV @R2+,dst 
+            CMP #8,TOS              ; -- xxxx       #8 ?
+            JZ PARAMENDOF
+            MOV #0330h,S            ; -- -1         OPCODE = 0330h : MOV #-1,dst is coded MOV @R3+,dst
+            CMP #-1,TOS             ; -- xxxx       #-1 ?
+            JZ PARAMENDOF
+            MOV #0030h,S            ; -- xxxx       for all other cases : MOV @PC+,dst
+; case of "&xxxx,"                  ;               <== PARAM110
+; case of ",&xxxx"                  ;               <== PARAM20
+StoreArg    MOV &DDP,X              ;
+            ADD #2,&DDP             ;               cell allot for arg
+StoreTOS                            ;               <== TYPE1DOES
+            MOV TOS,0(X)            ;               compile arg
+; endcase of all "&xxxx"            ;
+; endcase of all "#xxxx"            ;               <== PARAM101,102,104,108,10M1
+; endcase of all "REG"|"@REG"|"@REG+"               <== PARAM124
+PARAMENDOF  MOV @PSP+,TOS           ; --
+            MOV @RSP+,IP            ;
+            mNEXT                   ; --            S=OPCODE,T=OPCODEADR
+; ----------------------------------;
+PARAM11     CMP.B   #'&',W          ; -- sep
             JNE     PARAM12
-
-; case of "&xxxx,"                          ; -- sep        search for "&xxxx,"
-PARAM110    MOV     #0210h,S                ; -- sep        set code type : xxxx(SR) with AS=0b01 ==> x210h (and SR=0 !)
-
+; case of "&xxxx,"                  ; -- sep        search for "&xxxx,"
+PARAM110    MOV     #0210h,S        ; -- sep        set code type : xxxx(SR) with AS=0b01 ==> x210h (and SR=0 !)
 ; case of "&xxxx,"
-; case of ",&xxxx"                          ; <== PARAM20
-PARAM111    ADD     #1,&TOIN                ; -- sep        skip "&" prefix
-            CALL    #SearchARG              ; -- arg        abort if not found
-            JMP     StoreArg                ; --            then ret
-; ------------------------------------------
-
-PARAM12     CMP.B   #'@',W                  ; -- sep
+; case of ",&xxxx"                  ;               <== PARAM20
+PARAM111    ADD     #1,&TOIN        ; -- sep        skip "&" prefix
+            CALL    #SearchARG      ; -- arg        abort if not found
+            JMP     StoreArg        ; --            then ret
+; ----------------------------------;
+PARAM12     CMP.B   #'@',W          ; -- sep
             JNE     PARAM13
-
 ; case of "@REG,"|"@REG+,"
-PARAM120    MOV     #0020h,S                ; -- sep        init ASMTYPE with indirect code type : AS=0b10
-            ADD     #1,&TOIN                ; -- sep        skip "@" prefix
-            CALL    #SearchREG              ;               Z = not found
-            JNZ     PARAM123                ; -- value      REG of "@REG," found
-
-; case of "@REG+,"                          ; -- c-addr     REG of "@REG" not found, search REG of "@REG+"
-PARAM121    ADD     #0010h,S                ;               change ASMTYPE from @REG to @REG+ type
-            MOV     #'+',TOS                ; -- "+"        as WORD separator to find REG of "@REG+,"
-            CALL    #SearchREG              ; -- value|c-addr   X = flag
-            
-; case of "@REG+,"                          ;
-; case of "xxxx(REG),"                      ; <== PARAM130
-                                            ;               cases of double separator:   +, and ),
-PARAM122    CMP     &SOURCE_LEN,&TOIN       ;               test OPCODE II parameter ending by REG+ or (REG) without comma,
-            JZ      PARAM123                ;               i.e. >IN = SOURCE_LEN : don't skip char CR !
-            ADD     #1,&TOIN                ; -- 000R       skip "," ready for the second operand search
-
+PARAM120    MOV     #0020h,S        ; -- sep        init OPCODE with indirect code type : AS=0b10
+            ADD     #1,&TOIN        ; -- sep        skip "@" prefix
+            CALL    #SearchREG      ;               Z = not found
+            JNZ     PARAM123        ; -- value      REG of "@REG," found
+; case of "@REG+,"                  ; -- addr       REG of "@REG" not found, search REG of "@REG+"
+PARAM121    ADD     #0010h,S        ;               change OPCODE from @REG to @REG+ type
+            MOV     #'+',TOS        ; -- "+"        as WORD separator to find REG of "@REG+,"
+            CALL    #SearchREG      ; -- value|addr X = flag
+; case of "@REG+,"                  ;
+; case of "xxxx(REG),"              ;               <== PARAM130
+                                    ;               case of double separator:   +, and ),
+PARAM122    CMP &SOURCE_LEN,&TOIN   ;               test OPCODE II parameter ending by REG+ or (REG) without comma,
+            JZ      PARAM123        ;               i.e. >IN = SOURCE_LEN : don't skip char CR !
+            ADD     #1,&TOIN        ; -- 000R       skip "," ready for the second operand search
 ; case of "@REG+,"
 ; case of "xxxx(REG),"
-; case of "@REG,"                           ; <== PARAM120
-; case of "REG,"                            ; <== PARAM13
-PARAM123    SWPB    TOS                     ; 000R -- 0R00  swap bytes because it's not a dst REG typeI (not a 2 ops inst.)
-
-; case of "@REG+,"                          ; -- 0R00                   (src REG typeI)
-; case of "xxxx(REG),"                      ; -- 0R00                   (src REG typeI or dst REG typeII)
-; case of "@REG,"                           ; -- 0R00                   (src REG typeI)
-; case of "REG,"                            ; -- 0R00                   (src REG typeI or dst REG typeII)
-; case of ",REG"                            ; -- 000R   <== PARAM21     (dst REG typeI)
-; case of ",xxxx(REG)"                      ; -- 000R   <== PARAM210    (dst REG typeI)
-PARAM124    ADD     TOS,S                   ; -- 0R00|000R
-            JMP     PARAMENDOF              ;
-; ------------------------------------------
-
-; case of "REG,"|"xxxx(REG),"               ;               first, searg REG of "REG,"
-PARAM13     CALL    #SearchREG              ; -- sep        save >IN for second parsing (case of "xxxx(REG),")
-            JNZ     PARAM123                ; -- 000R       REG of "REG," found, S=ASMTYPE=0
-
-; case of "xxxx(REG),"                      ; -- c-addr     "REG," not found
-PARAM130    ADD     #0010h,S         ;               AS=0b01 for indexing address
-            CALL    #ComputeARGparenREG     ;               compile xxxx and search REG of "(REG)"
-            JMP     PARAM122                ; 
+; case of "@REG,"                   ; -- 000R       <== PARAM120
+; case of "REG,"                    ; -- 000R       <== PARAM13
+PARAM123    SWPB    TOS             ; -- 0R00       swap bytes because it's not a dst REG typeI (not a 2 ops inst.)
+; case of "@REG+,"                  ; -- 0R00                   (src REG typeI)
+; case of "xxxx(REG),"              ; -- 0R00                   (src REG typeI or dst REG typeII)
+; case of "@REG,"                   ; -- 0R00                   (src REG typeI)
+; case of "REG,"                    ; -- 0R00                   (src REG typeI or dst REG typeII)
+; case of ",REG"                    ; -- 000R       <== PARAM21     (dst REG typeI)
+; case of ",xxxx(REG)"              ; -- 000R       <== PARAM210    (dst REG typeI)
+PARAM124    ADD     TOS,S           ; -- 0R00|000R
+            JMP     PARAMENDOF
+; ----------------------------------;
+; case of "REG,"|"xxxx(REG),"       ;               first, searg REG of "REG,"
+PARAM13     CALL    #SearchREG      ; -- sep        save >IN for second parsing (case of "xxxx(REG),")
+            JNZ     PARAM123        ; -- 000R       REG of "REG," found, S=OPCODE=0
+; case of "xxxx(REG),"              ; -- c-addr     "REG," not found
+PARAM130    ADD     #0010h,S        ;               AS=0b01 for indexing address
+            CALL #ComputeARGparenREG;               compile xxxx and search REG of "(REG)"
+            JMP     PARAM122        ; 
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : INTERPRET 2th OPERAND
 ; ----------------------------------------------------------------------
 
-INITPARAM2                                  ; for OPCODES TYPE III
-            MOV     #0,S                    ;                       init ASMTYPE=0
-            MOV     &DDP,T                  ;                       T=OPCODEADR
-            ADD     #2,&DDP                 ;                       make room for opcode
-
-; PARAM2     --                             ; parse input buffer until BL and compute this 2th operand
-PARAM2      mDOCOL                          ;
-            .word   FBLANK,SKIP             ;               skip space(s) between "arg1," and "arg2" if any; use not S,T.
-            FORTHtoASM                      ; -- c-addr     search for '&' of "&xxxx
-            CMP.B   #'&',0(TOS)             ;
-            MOV     #20h,TOS                ; -- " "        as WORD separator to find xxxx of ",&xxxx"
-            JNE     PARAM21                 ;               '&' not found
-
-; case of ",&xxxx"                          ;
-PARAM20     ADD     #0082h,S                ;               change ASMTYPE : AD=1, dst = R2
-            JMP     PARAM111                ; -- " "
-; ------------------------------------------
-
-; case of ",REG"|",xxxx(REG)                ; -- " "        first, search REG of ",REG"
-PARAM21     CALL    #SearchREG              ;
-            JNZ     PARAM124                ; -- 000R       REG of ",REG" found
-
-; case of ",xxxx(REG)                       ; -- c-addr     REG not found
-PARAM210    ADD     #0080h,S                ;               set AD=1
-            CALL    #ComputeARGparenREG     ;               compile argument xxxx and search REG of "(REG)"
-            JMP     PARAM124                ; -- 000R       REG of "(REG) found
-
+PARAM3                              ; for OPCODES TYPE III
+            MOV     #0,S            ;                       init OPCODE=0
+            MOV     &DDP,T          ;                       T=OPCODEADR
+            ADD     #2,&DDP         ;                       make room for opcode
+; ----------------------------------;
+PARAM2      mDOCOL                  ;               parse input buffer until BL and compute this 2th operand
+            .word   FBLANK,SKIP     ;               skip space(s) between "arg1," and "arg2" if any; use not S,T.
+            FORTHtoASM              ; -- c-addr     search for '&' of "&xxxx
+            CMP.B   #'&',0(TOS)     ;
+            MOV     #20h,TOS        ; -- ' '        as WORD separator to find xxxx of ",&xxxx"
+            JNE     PARAM21         ;               '&' not found
+; case of ",&xxxx"                  ;
+PARAM20     ADD     #0082h,S        ;               change OPCODE : AD=1, dst = R2
+            JMP     PARAM111        ; -- ' '
+; ----------------------------------;
+; case of ",REG"|",xxxx(REG)        ; -- ' '        first, search REG of ",REG"
+PARAM21     CALL    #SearchREG      ;
+            JNZ     PARAM124        ; -- 000R       REG of ",REG" found
+; case of ",xxxx(REG)               ; -- addr       REG not found
+PARAM210    ADD     #0080h,S        ;               set AD=1
+            CALL #ComputeARGparenREG;               compile argument xxxx and search REG of "(REG)"
+            JMP     PARAM124        ; -- 000R       REG of "(REG) found
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER: OPCODES TYPE 0 : zero operand     f:-)
@@ -329,16 +297,13 @@ PARAM210    ADD     #0080h,S                ;               set AD=1
 ; OPCODE(dst) for TYPE I or TYPE II                            = 0bxxxx dst register
 ; ----------------------------------------------------------------------
 
-; TYPE1DOES     -- PFADOES      search and compute PARAM1 & PARAM2 as src and dst operands then compile instruction
-TYPE1DOES                                   ; -- PFADOES
-            .word   lit,','                 ; -- PFADOES ","        char separator for PARAM1
-            .word   PARAM1                  ; -- PFADOES
-            .word   PARAM2                  ; -- PFADOES            char separator (BL) included in PARAM2
-            FORTHtoASM                      ; -- PFADOES
-MAKEOPCODE  MOV     @TOS,TOS                ; -- opcode             part of instruction
-            BIS     S,TOS                   ; -- opcode             opcode is complete
-            MOV     T,X                     ; -- opcode             X=T= OPCODEADR to compile opcode
-            JMP     StoreTOS                ;                       then EXIT
+TYPE1DOES   .word   lit,',',PARAM1  ; -- BODYDOES
+            .word   PARAM2          ; -- BODYDOES           char separator (BL) included in PARAM2
+            FORTHtoASM              ;
+MAKEOPCODE  MOV     T,X             ; -- opcode             X= OPCODEADR to compile opcode
+            MOV     @TOS,TOS        ; -- opcode             part of instruction
+            BIS     S,TOS           ; -- opcode             opcode is complete
+            JMP     StoreTOS        ; --                    then EXIT
 
             asmword "MOV"
             mDODOES
@@ -347,91 +312,69 @@ MAKEOPCODE  MOV     @TOS,TOS                ; -- opcode             part of inst
             asmword "MOV.B"
             mDODOES
             .word   TYPE1DOES,4040h
-
             asmword "ADD"
             mDODOES
             .word   TYPE1DOES,5000h
-
             asmword "ADD.B"
             mDODOES
             .word   TYPE1DOES,5040h
-
             asmword "ADDC"
             mDODOES
             .word   TYPE1DOES,6000h
-
             asmword "ADDC.B"
             mDODOES
             .word   TYPE1DOES,6040h
-
             asmword "SUBC"
             mDODOES
             .word   TYPE1DOES,7000h
-
             asmword "SUBC.B"
             mDODOES
             .word   TYPE1DOES,7040h
-
             asmword "SUB"
             mDODOES
             .word   TYPE1DOES,8000h
-
             asmword "SUB.B"
             mDODOES
             .word   TYPE1DOES,8040h
-
             asmword "CMP"
             mDODOES
             .word   TYPE1DOES,9000h
-
             asmword "CMP.B"
             mDODOES
             .word   TYPE1DOES,9040h
-
             asmword "DADD"
             mDODOES
             .word   TYPE1DOES,0A000h
-
             asmword "DADD.B"
             mDODOES
             .word   TYPE1DOES,0A040h
-
             asmword "BIT"
             mDODOES
             .word   TYPE1DOES,0B000h
-
             asmword "BIT.B"
             mDODOES
             .word   TYPE1DOES,0B040h
-
             asmword "BIC"
             mDODOES
             .word   TYPE1DOES,0C000h
-
             asmword "BIC.B"
             mDODOES
             .word   TYPE1DOES,0C040h
-
             asmword "BIS"
             mDODOES
             .word   TYPE1DOES,0D000h
-
             asmword "BIS.B"
             mDODOES
             .word   TYPE1DOES,0D040h
-
             asmword "XOR"
             mDODOES
             .word   TYPE1DOES,0E000h
-
             asmword "XOR.B"
             mDODOES
             .word   TYPE1DOES,0E040h
-
             asmword "AND"
             mDODOES
             .word   TYPE1DOES,0F000h
-
             asmword "AND.B"
             mDODOES
             .word   TYPE1DOES,0F040h
@@ -453,61 +396,49 @@ MAKEOPCODE  MOV     @TOS,TOS                ; -- opcode             part of inst
 ; OPCODE(dst) for TYPE I or TYPE II                            = 0bxxxx dst register
 ; ----------------------------------------------------------------------
 
-; TYPE2DOES     -- PFADOES          search and compute PARAM1 as dst operand then compile instruction
-TYPE2DOES                                   ; -- PFADOES
-            .word   FBLANK                  ;               char separator for PARAM1
-            .word   PARAM1
-            FORTHtoASM                      ; -- PFADOES
-            MOV     S,W                     ;
-            AND     #0070h,S                ;             keep B/W & AS infos in ASMTYPE
-            SWPB    W                       ;             (REG org --> REG dst)
-            AND     #000Fh,W                ;             keep REG
-BIS_ASMTYPE BIS     W,S                     ; -- PFADOES  add it in ASMTYPE
-            JMP     MAKEOPCODE              ; -- then end
+TYPE2DOES   .word   FBLANK,PARAM1   ; -- BODYDOES
+            FORTHtoASM              ;
+            MOV     S,W             ;
+            AND     #0070h,S        ;                   keep B/W & AS infos in OPCODE
+            SWPB    W               ;                   (REG org --> REG dst)
+            AND     #000Fh,W        ;                   keep REG
+BIS_ASMTYPE BIS     W,S             ; -- BODYDOES       add it in OPCODE
+            JMP     MAKEOPCODE      ; -- then end
 
-            asmword "RRC"          ; Rotate Right through Carry ( word)
+            asmword "RRC"           ; Rotate Right through Carry ( word)
             mDODOES
             .word   TYPE2DOES,1000h
-
             asmword "RRC.B"         ; Rotate Right through Carry ( byte)
             mDODOES
             .word   TYPE2DOES,1040h
-
             asmword "SWPB"          ; Swap bytes
             mDODOES
             .word   TYPE2DOES,1080h
-
             asmword "RRA"
             mDODOES
             .word   TYPE2DOES,1100h
-
             asmword "RRA.B"
             mDODOES
             .word   TYPE2DOES,1140h
-
             asmword "SXT"
             mDODOES
             .word   TYPE2DOES,1180h
-
             asmword "PUSH"
             mDODOES
             .word   TYPE2DOES,1200h
-
             asmword "PUSH.B"
             mDODOES
             .word   TYPE2DOES,1240h
-
             asmword "CALL"
             mDODOES
             .word   TYPE2DOES,1280h
 
-
-BOUNDERRWM1 ADD     #1,W                    ; <== RRAM|RRUM|RRCM|RLAM error
-BOUNDERRORW MOV     W,TOS                   ; <== PUSHM|POPM|ASM_branch error
-BOUNDERROR                                  ; <== REG number error
-            mDOCOL                          ; -- n      n = value out of bounds
+BOUNDERRWM1 ADD     #1,W            ; <== RRAM|RRUM|RRCM|RLAM error
+BOUNDERRORW MOV     W,TOS           ; <== PUSHM|POPM|ASM_branch error
+BOUNDERROR                          ; <== REG number error
+            mDOCOL                  ; -- n      n = value out of bounds
             .word   DOT,XSQUOTE
-            .byte   13,"out of bounds"
+            .byte 13,"out of bounds"
             .word   QABORTYES
 
 ; --------------------------------------------------------------------------------
@@ -529,59 +460,52 @@ BOUNDERROR                                  ; <== REG number error
 
 ; RxxM syntax: RxxM #n,REG  with 0 < n < 5 
 
-; TYPE3DOES      -- PFADOES        parse input stream to search : "   #N, REG " as operands of RLAM|RRAM|RRUM|RRCM
-TYPE3DOES                                   ; -- PFADOES
-            .word   FBLANK,SKIP             ;                       skip spaces if any
-            FORTHtoASM                      ; -- PFADOES c-addr
-            ADD     #1,&TOIN                ;                       skip "#"
-            MOV     #',',TOS                ; -- PFADOES ","
+TYPE3DOES   .word   FBLANK,SKIP     ;                       skip spaces if any
+            FORTHtoASM              ; -- BODYDOES c-addr
+            ADD     #1,&TOIN        ;                       skip "#"
+            MOV     #',',TOS        ; -- BODYDOES ","
             ASMtoFORTH
             .word   WORDD,QNUMBER
-            .word   QFBRAN,NotFound         ;                       ABORT
-            .word   INITPARAM2              ; -- PFADOES 0x000N     S=ASMTYPE = 0x000R
+            .word   QFBRAN,NotFound ;                       ABORT
+            .word   PARAM3          ; -- BODYDOES 0x000N    S=OPCODE = 0x000R
             FORTHtoASM
-            MOV     TOS,W                   ; -- PFADOES n          W = n
-            MOV     @PSP+,TOS               ; -- PFADOES
-            SUB     #1,W                    ;                       W = n floored to 0
+            MOV     TOS,W           ; -- BODYDOES n         W = n
+            MOV     @PSP+,TOS       ; -- BODYDOES
+            SUB     #1,W            ;                       W = n floored to 0
             JN      BOUNDERRWM1
-            MOV     @TOS,X                  ;                       X=OPCODE
-            RLAM    #4,X                    ;                       OPCODE bit 1000h --> C
-            JNC     RxxMINSTRU              ;                       
-PxxxINSTRU  MOV     S,Y                     ;                       S=REG, Y=REG to test
-            RLAM    #3,X                    ;                       OPCODE bit 0200h --> C                  
-            JNC     PUSHMINSTRU             ;                       W=n-1 Y=REG
-POPMINSTRU  SUB     W,S                     ;                       to make POPM opcode, compute first REG to POP; TI is complicated....
-PUSHMINSTRU SUB     W,Y                     ;                       Y=REG-(n-1)
+            MOV     @TOS,X          ;                       X=OPCODE
+            RLAM    #4,X            ;                       OPCODE bit 1000h --> C
+            JNC     RxxMINSTRU      ;                       if bit 1000h = 0
+PxxxINSTRU  MOV     S,Y             ;                       S=REG, Y=REG to test
+            RLAM    #3,X            ;                       OPCODE bit 0200h --> C                  
+            JNC     PUSHMINSTRU     ;                       W=n-1 Y=REG
+POPMINSTRU  SUB     W,S             ;                       to make POPM opcode, compute first REG to POP; TI is complicated....
+PUSHMINSTRU SUB     W,Y             ;                       Y=REG-(n-1)
             CMP     #16,Y
-            JHS     BOUNDERRWM1             ;                       JC=JHS    (U>=)
-            RLAM    #4,W                    ;                       W = n << 4      
-            JMP     BIS_ASMTYPE             ; PFADOES --            
-RxxMINSTRU  CMP     #4,W                    ;
-            JHS     BOUNDERRWM1             ;                       JC=JHS    (U>=)
-            SWPB    W                       ; -- PFADOES            W = n << 8
-            RLAM    #2,W                    ;                       W = N << 10
-            JMP     BIS_ASMTYPE             ; PFADOES --
+            JHS     BOUNDERRWM1     ;                       JC=JHS    (U>=)
+            RLAM    #4,W            ;                       W = n << 4      
+            JMP     BIS_ASMTYPE     ; BODYDOES --            
+RxxMINSTRU  CMP     #4,W            ;
+            JHS     BOUNDERRWM1     ;                       JC=JHS    (U>=)
+            SWPB    W               ; -- BODYDOES           W = n << 8
+            RLAM    #2,W            ;                       W = N << 10
+            JMP     BIS_ASMTYPE     ; BODYDOES --
 
             asmword "RRCM"
             mDODOES
             .word   TYPE3DOES,0050h
-
             asmword "RRAM"
             mDODOES
             .word   TYPE3DOES,0150h
-
             asmword "RLAM"
             mDODOES
             .word   TYPE3DOES,0250h
-
             asmword "RRUM"
             mDODOES
             .word   TYPE3DOES,0350h
-
             asmword "PUSHM"
             mDODOES
             .word   TYPE3DOES,1500h
-
             asmword "POPM"
             mDODOES
             .word   TYPE3DOES,1700h
@@ -599,87 +523,84 @@ RxxMINSTRU  CMP     #4,W                    ;
 ; OPCODE(code) for TYPE JL              <           = 0x38xx + (offset AND 3FF) ; branch if (N xor V) = 1
 ; OPCODE(code) for TYPE JMP                         = 0x3Cxx + (offset AND 3FF)
 
-CODE_JMP    mDOCON                      ; branch always
-            .word   3C00h
-
-            asmword "S>="               ; if >= assertion (opposite of jump if < )
+            asmword "S>="           ; if >= assertion (opposite of jump if < )
             mDOCON
             .word   3800h
 
-            asmword "S<"                ; if < assertion
+            asmword "S<"            ; if < assertion
             mDOCON
             .word   3400h
 
-            asmword "0>="               ; if 0>= assertion  ; use only with IF UNTIL WHILE !
+            asmword "0>="           ; if 0>= assertion  ; use only with IF UNTIL WHILE !
             mDOCON
             .word   3000h
 
-            asmword "0<"                ; jump if 0<        ; use only with ?JMP ?GOTO !
+            asmword "0<"            ; jump if 0<        ; use only with ?JMP ?GOTO !
             mDOCON
             .word   3000h
 
-            asmword "U<"                ; if U< assertion
+            asmword "U<"            ; if U< assertion
             mDOCON
             .word   2C00h
 
-            asmword "U>="               ; if U>= assertion
+            asmword "U>="           ; if U>= assertion
             mDOCON
             .word   2800h
 
-            asmword "0<>"               ; if <>0 assertion
+            asmword "0<>"           ; if <>0 assertion
             mDOCON
             .word   2400h
 
-            asmword "0="                ; if =0 assertion
+            asmword "0="            ; if =0 assertion
             mDOCON
             .word   2000h
 
 ;ASM IF      OPCODE -- @OPCODE1
             asmword "IF"
 ASM_IF      MOV     &DDP,W
-            MOV     TOS,0(W)            ; compile incomplete opcode
+            MOV     TOS,0(W)        ; compile incomplete opcode
             ADD     #2,&DDP
             MOV     W,TOS
             mNEXT
 
 ;ASM THEN     @OPCODE --        resolve forward branch
             asmword "THEN"
-ASM_THEN    MOV     &DDP,W              ; -- @OPCODE   W=dst
-            MOV     TOS,Y               ;               Y=@OPCODE
-ASM_THEN1   MOV     @PSP+,TOS           ; --
-            MOV     Y,X                 ;
-            ADD     #2,X                ; --        Y=@OPCODE   W=dst   X=src+2
-            SUB     X,W                 ; --        Y=@OPCODE   W=dst-src+2=displacement*2 (bytes)
-            RRA     W                   ; --        Y=@OPCODE   W=displacement (words)
+ASM_THEN    MOV     &DDP,W          ; -- @OPCODE    W=dst
+            MOV     TOS,Y           ;               Y=@OPCODE
+ASM_THEN1   MOV     @PSP+,TOS       ; --
+            MOV     Y,X             ;
+            ADD     #2,X            ; --        Y=@OPCODE   W=dst   X=src+2
+            SUB     X,W             ; --        Y=@OPCODE   W=dst-src+2=displacement*2 (bytes)
+            RRA     W               ; --        Y=@OPCODE   W=displacement (words)
             CMP     #512,W
-            JC      BOUNDERRORW         ; (JHS) unsigned branch if u> 511
-            BIS     W,0(Y)              ; --       [@OPCODE]=OPCODE completed
+            JC      BOUNDERRORW     ; (JHS) unsigned branch if u> 511
+            BIS     W,0(Y)          ; --       [@OPCODE]=OPCODE completed
             mNEXT
 
 ;C ELSE     @OPCODE1 -- @OPCODE2    branch for IF..ELSE
             asmword "ELSE"
-ASM_ELSE    MOV     &DDP,W              ; --        W=HERE
-            MOV     #3C00h,0(W)         ;           compile unconditionnal branch
-            ADD     #2,&DDP             ; --        DP+2
+ASM_ELSE    MOV     &DDP,W          ; --        W=HERE
+            MOV     #3C00h,0(W)     ;           compile unconditionnal branch
+            ADD     #2,&DDP         ; --        DP+2
             SUB     #2,PSP
-            MOV     W,0(PSP)            ; -- @OPCODE2 @OPCODE1
-            JMP     ASM_THEN            ; -- @OPCODE2
+            MOV     W,0(PSP)        ; -- @OPCODE2 @OPCODE1
+            JMP     ASM_THEN        ; -- @OPCODE2
 
-;C BEGIN    -- @BEGIN                   same as FORTH counterpart
+;C BEGIN    -- @BEGIN               same as FORTH counterpart
 
 ;C UNTIL    @BEGIN OPCODE --   resolve conditional backward branch
             asmword "UNTIL"
-ASM_UNTIL   MOV     @PSP+,W             ;  -- OPCODE           W=dst
-ASM_UNTIL1  MOV     TOS,Y
-            MOV     @PSP+,TOS           ;  --
-            MOV     &DDP,X              ;  --       Y=OPCODE   X=HERE  W=dst
-            SUB     #2,W                ;  --       Y=OPCODE   X=HERE  W=dst-2
-            SUB     X,W                 ;  --       Y=OPCODE   X=src   W=src-dst-2=displacement (bytes)
-            RRA     W                   ;  --       Y=OPCODE   X=HERE  W=displacement (words)
+ASM_UNTIL   MOV     @PSP+,W         ;  -- OPCODE                        W=@BEGIN
+ASM_UNTIL1  MOV     TOS,Y           ;               Y=OPCODE            W=@BEGIN
+ASM_UNTIL2  MOV     @PSP+,TOS       ;  --
+            MOV     &DDP,X          ;  --           Y=OPCODE    X=HERE  W=dst
+            SUB     #2,W            ;  --           Y=OPCODE    X=HERE  W=dst-2
+            SUB     X,W             ;  --           Y=OPCODE    X=src   W=src-dst-2=displacement (bytes)
+            RRA     W               ;  --           Y=OPCODE    X=HERE  W=displacement (words)
             CMP     #-512,W
-            JL      BOUNDERRORW         ; signed branch if < -512
-            AND     #3FFh,W             ;  --       Y=OPCODE   X=HERE  W=troncated negative displacement (words)
-            BIS     W,Y                 ;  --       Y=OPCODE (completed)
+            JL      BOUNDERRORW     ; signed branch if < -512
+            AND     #3FFh,W         ;  --           Y=OPCODE   X=HERE  W=troncated negative displacement (words)
+            BIS     W,Y             ;  --           Y=OPCODE (completed)
             MOV     Y,0(X)
             ADD     #2,&DDP
             mNEXT
@@ -687,138 +608,291 @@ ASM_UNTIL1  MOV     TOS,Y
 ;X AGAIN    @BEGIN --      uncond'l backward branch
 ;   unconditional backward branch
             asmword "AGAIN"
-ASM_AGAIN   mDOCOL                      ; -- @BEGIN
-            .word   CODE_JMP            ; -- @BEGIN opcode
-            .word   ASM_UNTIL           ; --
-            .word   EXIT                ; --
+ASM_AGAIN   MOV TOS,W               ;               W=@BEGIN
+            MOV #3C00h,Y            ;               Y = asmcode JMP
+            JMP ASM_UNTIL2          ;
 
 ;C WHILE    @BEGIN OPCODE -- @WHILE @BEGIN
             asmword "WHILE"
-ASM_WHILE   mDOCOL                      ; -- @BEGIN OPCODE
-            .word   ASM_IF              ; -- @BEGIN @WHILE
-            .word   SWAP                ; -- @WHILE @BEGIN
-            .word   EXIT
+ASM_WHILE   mDOCOL                  ; -- @BEGIN OPCODE
+            .word   ASM_IF,SWAP,EXIT
 
 ;C REPEAT   @WHILE @BEGIN --     resolve WHILE loop
             asmword "REPEAT"
-ASM_REPEAT  mDOCOL                      ; -- @WHILE @BEGIN
-            .word   CODE_JMP            ; -- @WHILE @BEGIN opcode
-            .word   ASM_UNTIL           ; -- @WHILE
-            .word   ASM_THEN            ; --
-            .word   EXIT
+ASM_REPEAT  mDOCOL                  ; -- @WHILE @BEGIN
+            .word   ASM_AGAIN,ASM_THEN,EXIT
 
 ; ------------------------------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : branch up to 3 backward labels and up to 3 forward labels
 ; ------------------------------------------------------------------------------------------
 ; used for non canonical branchs, as BASIC language: "goto line x"
-; when a branch to label is resolved, it's ready for new use
-
-BACKWARDDOES        ;
-    FORTHtoASM
-    MOV @RSP+,IP
-    MOV @TOS,TOS
-    MOV TOS,Y       ; Y = ASMBWx
-    MOV @PSP+,TOS   ; 
-    MOV @Y,W        ;               W = [ASMBWx]
-    CMP #0,W        ;               W = 0 ?
-    MOV #0,0(Y)     ;               clear [ASMBWx] for next use
-BACKWUSE            ; -- OPCODE
-    JNZ ASM_UNTIL1
-BACKWSET            ; --
-    MOV &DDP,0(Y)   ;               [ASMBWx] = DDP
-    mNEXT
+; labels BWx and FWx must be respectively set and used at the beginning of line (>IN < 8).
+; FWx at the beginning of a line can resolve only one previous GOTO|?GOTO FWx.
+; BWx at the beginning of a line can be resolved by any subsequent GOTO|?GOTO BWx.
+
+BACKWDOES   FORTHtoASM
+            MOV @RSP+,IP            ;
+            MOV TOS,Y               ; -- PFA        Y = ASMBWx addr
+            MOV @PSP+,TOS           ; --
+            MOV @Y,W                ;               W = LABEL
+            CMP #8,&TOIN            ;               are we colon 8 or more ?
+BACKWUSE    JHS ASM_UNTIL1          ;               yes, use this label  
+BACKWSET    MOV &DDP,0(Y)           ;               no, set LABEL = DP
+            mNEXT
 
 ; backward label 1
             asmword "BW1"
             mdodoes
-            .word BACKWARDDOES
-            .word ASMBW1    ; in RAM
-
+            .word BACKWDOES
+            .word 0
 ; backward label 2
             asmword "BW2"
             mdodoes
-            .word BACKWARDDOES
-            .word ASMBW2    ; in RAM
-
+            .word BACKWDOES
+            .word 0
 ; backward label 3
             asmword "BW3"
             mdodoes
-            .word BACKWARDDOES
-            .word ASMBW3    ; in RAM
-
-FORWARDDOES
-    FORTHtoASM
-    MOV @RSP+,IP
-    MOV &DDP,W      ;
-    MOV @TOS,TOS
-    MOV @TOS,Y      ;               Y=[ASMFWx]
-    CMP #0,Y        ;               ASMFWx = 0 ? (FWx is free?)
-    MOV #0,0(TOS)   ;               clear [ASMFWx] for next use
-FORWUSE             ; PFA -- @OPCODE
-    JNZ ASM_THEN1   ;               no
-FORWSET             ; OPCODE PFA -- 
-    MOV @PSP+,0(W)  ; -- PFA        compile incomplete opcode
-    ADD #2,&DDP     ;               increment DDP
-    MOV W,0(TOS)    ;               store @OPCODE into ASMFWx
-    MOV @PSP+,TOS   ;   --
-    mNEXT
+            .word BACKWDOES
+            .word 0
 
+FORWDOES    FORTHtoASM
+            MOV @RSP+,IP
+            MOV &DDP,W              ;
+            MOV @TOS,Y              ; -- PFA        Y=[ASMFWx]
+            CMP #8,&TOIN            ;               are we colon 8 or more ?
+FORWUSE     JLO ASM_THEN1           ;               no: resolve FWx with W=DDP, Y=ASMFWx
+FORWSET     MOV @PSP+,0(W)          ;               yes compile incomplete opcode
+            ADD #2,&DDP             ;                   increment DDP
+            MOV W,0(TOS)            ;                   store @OPCODE into ASMFWx
+            MOV @PSP+,TOS           ;   --
+            mNEXT
 
 ; forward label 1
             asmword "FW1"
             mdodoes
-            .word FORWARDDOES
-            .word ASMFW1    ; in RAM
-
+            .word FORWDOES
+            .word 0
 ; forward label 2
             asmword "FW2"
             mdodoes
-            .word FORWARDDOES
-            .word ASMFW2    ; in RAM
-
+            .word FORWDOES
+            .word 0
 ; forward label 3
             asmword "FW3"
             mdodoes
-            .word FORWARDDOES
-            .word ASMFW3    ; in RAM
-
-
-; invert FORTH conditionnal branch      FORTH_JMP_OPCODE -- LABEL_JMP_OPCODE
-INVJMP      CMP #3000h,TOS  
-            JZ INVJMPEND    ; case of JN, do nothing
-            XOR #0400h,TOS  ; case of: JNZ<-->JZ  JNC<-->JC  JL<-->JGE
-            BIT #1000h,TOS  ; 3xxxh case ?
-            JZ  INVJMPEND   ; no
-            XOR #0800h,TOS  ; complementary action for JL<-->JGE
-INVJMPEND   mNEXT
-
-;ASM    GOTO <label>                   --       unconditionnal branch to label
-            asmword "GOTO"
-            mDOCOL
-            .word   CODE_JMP,TICK   ;  -- OPCODE CFA<label>
-            .word   EXECUTE,EXIT
+            .word FORWDOES
+            .word 0
 
 ;ASM    <cond> ?GOTO <label>    OPCODE --       conditionnal branch to label
             asmword "?GOTO"
-            mDOCOL
-            .word   INVJMP,TICK     ;  -- OPCODE CFA<label>
+INVJMP      CMP #3000h,TOS          ; invert code jump process
+            JZ GOTONEXT             ; case of JN, do nothing
+            XOR #0400h,TOS          ; case of: JNZ<-->JZ  JNC<-->JC  JL<-->JGE
+            BIT #1000h,TOS          ; 3xxxh case ?
+            JZ  GOTONEXT            ; no
+            XOR #0800h,TOS          ; complementary action for JL<-->JGE
+GOTONEXT    mDOCOL
+            .word   TICK            ;  -- OPCODE CFA<label>
             .word   EXECUTE,EXIT
 
-; ----------------------------------------------------------------
-; DTCforthMSP430FR5xxx ASSEMBLER : branch to a previous definition
-; ----------------------------------------------------------------
+;ASM    GOTO <label>                   --       unconditionnal branch to label
+            asmword "GOTO"
+            SUB #2,PSP
+            MOV TOS,0(PSP)
+            MOV #3C00h,TOS          ; asmcode JMP
+            JMP GOTONEXT
+
+
+
+
+    .IFDEF EXTENDED_MEM
+
+; ===============================================================
+; to allow data access beyond $FFFF
+; ===============================================================
+
+; MOVA (#$x.xxxx|&$x.xxxx|$.xxxx(Rs)|Rs|@Rs|@Rs+ , &|Rd|$.xxxx(Rd)) 
+; ADDA (#$x.xxxx|Rs , Rd) 
+; CMPA (#$x.xxxx|Rs , Rd) 
+; SUBA (#$x.xxxx|Rs , Rd) 
+
+; first argument process ACMS1
+;-----------------------------------;
+ACMS1       mDOCOL                  ; -- BODYDOES ','   
+            .word   FBLANK,SKIP     ; -- BODYDOES ',' addr
+            FORTHtoASM              ;
+            MOV.B @TOS,X            ;                   X=first char of opcode string
+            MOV @PSP+,TOS           ; -- BODYDOES ','
+            MOV @PSP+,S             ; -- ','            S=BODYDOES
+            MOV @S,S                ;                   S=opcode
+            MOV &DDP,T              ;                   T=DDP
+            ADD #2,&DDP             ;                   make room for opcode
+;-----------------------------------;
+ACMS10      CMP.B #'R',X            ; -- ','    
+            JNZ ACMS11              ;
+ACMS101     CALL #SearchREG         ; -- Rn         src
+ACMS102     RLAM #4,TOS             ;               8<<src
+            RLAM #4,TOS             ;
+ACMS103     BIS S,TOS               ;               update opcode with src|dst
+            MOV TOS,0(T)            ;               save opcode
+            MOV T,TOS               ; -- OPCODE_addr
+            mSEMI                   ;
+;-----------------------------------;
+ACMS11      CMP.B #'#',X            ; -- ','        X=addr
+            JNE MOVA12              ;
+            BIC #40h,S              ;               set #opcode
+ACMS111     ADD #1,&TOIN            ;               skip '#'|'&'
+            ADD #2,&DDP             ;               make room for low #$xxxx|&$xxxx|$xxxx(REG)
+            CALL #SearchARG         ; -- Lo Hi
+            MOV @PSP+,2(T)          ; -- Hi         store $xxxx of #$x.xxxx|&$x.xxxx|$x.xxxx(REG)
+            AND #0Fh,TOS            ; -- Hi         sel Hi src
+            JMP ACMS102             ;
+;-----------------------------------;
+MOVA12      CMP.B #'&',X            ; -- ','        case of MOVA &$x.xxxx
+            JNZ MOVA13              ;
+            XOR #00E0h,S            ;               set MOVA &$x.xxxx, opcode                 
+            JMP ACMS111             ;
+;-----------------------------------;
+MOVA13      BIC #00F0h,S            ;               set MOVA @REG, opcode
+            CMP.B #'@',X            ; -- ','
+            JNZ MOVA14              ;
+            ADD #1,&TOIN            ;               skip '@'
+            CALL #SearchREG         ; -- Rn 
+            JNZ ACMS102             ;               if @REG found
+;-----------------------------------;
+            BIS #0010h,S            ;               set @REG+ opcode
+            MOV #'+',TOS            ; -- '+'
+MOVA131     CALL #SearchREG         ; -- Rn         case of MOVA @REG+,|MOVA $x.xxxx(REG),
+            CMP &SOURCE_LEN,&TOIN   ;               test TYPE II first parameter ending by @REG+ (REG) without comma,
+            JZ ACMS102              ;               i.e. may be >IN = SOURCE_LEN: don't skip char CR !
+            ADD #1,&TOIN            ;               skip "," ready for the second operand search
+            JMP ACMS102             ;
+;-----------------------------------;
+MOVA14      BIS #0030h,S            ;               set xxxx(REG), opcode
+            ADD #2,&DDP             ; -- ','        make room for first $xxxx of $0.xxxx(REG),
+            MOV #'(',TOS            ; -- "("        as WORD separator to find xxxx of "xxxx(REG),"
+            CALL #SearchARG         ; -- Lo Hi
+            MOV @PSP+,2(T)          ; -- Hi         store $xxxx as 2th word
+            MOV #')',TOS            ; -- ')'
+            JMP MOVA131             ;
+
+; 2th argument process ACMS2
+;-----------------------------------;
+ACMS2       mDOCOL                  ; -- OPCODE_addr 
+            .word FBLANK,SKIP       ; -- OPCODE_addr addr
+            FORTHtoASM              ;
+            MOV @PSP+,T             ; -- addr       T=OPCODE_addr
+            MOV @T,S                ;               S=opcode
+            MOV.B @TOS,X            ; -- addr       X=first char of string instruction         
+            MOV.B #' ',TOS          ; -- ' '
+;-----------------------------------;
+ACMS21      CMP.B #'R',X            ; -- ' '
+            JNZ MOVA22              ;
+ACMS211     CALL #SearchREG         ; -- Rn
+            JMP ACMS103             ;
+;-----------------------------------;
+MOVA22      BIC #0F0h,S             ;
+            ADD #2,&DDP             ; -- ' '        make room for $xxxx
+            CMP.B #'&',X            ;
+            JNZ MOVA23              ;
+            BIS #060h,S             ;               set ,&$x.xxxx opcode
+            ADD #1,&TOIN            ;               skip '&'
+            CALL #SearchARG         ; -- Lo Hi
+            MOV @PSP+,2(T)          ; -- Hi         store $xxxx as 2th word
+            JMP ACMS103             ;               update opcode with dst $x and write opcode
+;-----------------------------------;
+MOVA23      BIS #070h,S             ;               set ,xxxx(REG) opcode
+            MOV #'(',TOS            ; -- "("        as WORD separator to find xxxx of "xxxx(REG),"
+            CALL #SearchARG         ; -- Lo Hi
+            MOV @PSP+,2(T)          ; -- Hi         write $xxxx of ,$0.xxxx(REG) as 2th word
+            MOV #')',TOS            ; -- ")"        as WORD separator to find REG of "xxxx(REG),"
+            JMP ACMS211
 
-;ASM    JMP <word>          ;        --       unconditionnal branch to a previous definition
-            asmword "JMP"
-JUMP        mDOCOL
-            .word   TICK            ; -- @BACKWARD
-            .word   ASM_AGAIN,EXIT
+; --------------------------------------------------------------------------------
+; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES IV 2 operands: Adda|Cmpa|Mova|Suba (without extended word)
+; --------------------------------------------------------------------------------
+; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
+; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
+; --------------------------------------------------------------------------------
 
+TYPE4DOES   .word   lit,','         ; -- BODYDOES ","        char separator for PARAM1
+            .word   ACMS1           ; -- OPCODE_addr
+            .word   ACMS2           ; -- OPCODE_addr
+            .word   DROP,EXIT
 
-;ASM    <cond> ?JMP <word>  ;  OPCODE --       conditionnal branch to a previous definition
-            asmword "?JMP"
-            mDOCOL
-            .word   INVJMP,TICK,SWAP    ; 
-            .word   ASM_UNTIL,EXIT
+            asmword "MOVA"
+            mDODOES
+            .word   TYPE4DOES,00C0h
+            asmword "CMPA"
+            mDODOES
+            .word   TYPE4DOES,00D0h
+            asmword "ADDA"
+            mDODOES
+            .word   TYPE4DOES,00E0h
+            asmword "SUBA"
+            mDODOES
+            .word   TYPE4DOES,00F0h
 
 
+;; perhaps you also want to call ROM lib routines beyond $FFFF....
+;; --------------------------------------------------------------------------------
+;; DTCforthMSP430FR5xxx ASSEMBLER:  OPCODE TYPE III bis: CALLA (without extended word)
+;; --------------------------------------------------------------------------------
+;; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
+;; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
+;; --------------------------------------------------------------------------------
+;
+;            asmword "CALLA"
+;            mDOCOL
+;            .word FBLANK,SKIP       ; -- addr
+;            FORTHtoASM
+;            MOV &DDP,T              ;           T = DDP
+;            ADD #2,&DDP             ;           make room for opcode
+;            MOV.B @TOS,TOS          ; -- char   First char of opcode
+;CALLA0      MOV #134h,S             ;           134h<<4 = 1340h = opcode for CALLA Rn
+;            CMP.B #'R',TOS   
+;            JNZ CALLA1
+;CALLA01     MOV.B #' ',TOS          ;        
+;CALLA02     CALL #SearchREG         ; -- Rn
+;CALLA03     RLAM #4,S               ;           (opcode>>4)<<4 = opcode
+;            BIS TOS,S               ;           update opcode
+;            MOV S,0(T)              ;           store opcode
+;            MOV @PSP+,TOS
+;            mSEMI
+;;-----------------------------------;
+;CALLA1      ADD #2,S                ;           136h<<4 = opcode for CALLA @REG
+;            CMP.B #'@',TOS          ; -- char   Search @REG
+;            JNZ CALLA2              ;
+;            ADD #1,&TOIN            ;           skip '@'
+;            MOV.B #' ',TOS          ; -- ' '
+;            CALL #SearchREG         ;
+;            JNZ  CALLA03            ;           if REG found, update opcode
+;;-----------------------------------;
+;            ADD #1,S                ;           137h<<4 = opcode for CALLA @REG+
+;            MOV #'+',TOS            ; -- '+'
+;            JMP CALLA02             ;
+;;-----------------------------------;
+;CALLA2      ADD #2,&DDP             ;           make room for xxxx of #$x.xxxx|&$x.xxxx|$0.xxxx(REG)
+;            CMP.B #'#',TOS          ;
+;            JNZ CALLA3
+;            MOV #13Bh,S             ;           13Bh<<4 = opcode for CALLA #$x.xxxx
+;CALLA21     ADD #1,&TOIN            ;           skip '#'|'&'
+;CALLA22     CALL #SearchARG         ; -- Lo Hi
+;            MOV @PSP+,2(T)          ; -- Hi     store #$xxxx|&$xxxx
+;            JMP CALLA03             ;           update opcode with $x. and store opcode
+;;-----------------------------------;
+;CALLA3      CMP.B #'&',TOS   
+;            JNZ CALLA4              ;
+;            ADD #2,S                ;           138h<<4 = opcode for CALLA &$x.xxxx
+;            JMP CALLA21
+;;-----------------------------------;
+;CALLA4      MOV.B #'(',TOS          ; -- "("
+;            SUB #1,S                ;           135h<<4 = opcode for CALLA $0.xxxx(REG)
+;CALLA41     CALL #SearchARG         ; -- Lo Hi
+;            MOV @PSP+,2(T)          ; -- Hi     store $xxxx 
+;            MOV #')',TOS            ; -- ')'
+;            JMP CALLA02             ;           search Rn and update opcode
+    
+
+    .ENDIF ; EXTENDED_MEM
index 29fce8f..ea09ca3 100644 (file)
@@ -120,8 +120,8 @@ BRACKETELSE0
         .word   ONEPLUS                 ; 
 BRACKETELSE1                            ;
         .word   FBLANK,WORDD,COUNT      ;
-        .word   DUP,QFBRAN,BRACKETELSE5  ; if end of line refill buffer then loop back
-        .word   OVER,OVER               ; 2DUP
+        .word   DUP,QFBRAN,BRACKETELSE5 ; if end of line refill buffer then loop back
+        .word   TWODUP                  ;
         .word   XSQUOTE                 ;
         .byte   6,"[THEN]"              ;
         .word   COMPARE                 ;
@@ -130,7 +130,7 @@ BRACKETELSE1                            ;
         .word   QDUP,QTBRAN,BRACKETELSE1; loop back if count <> 0
         .word   EXIT                    ; else exit
 BRACKETELSE2                            ;
-        .word   OVER,OVER               ; 2DUP
+        .word   TWODUP                  ;
         .word   XSQUOTE                 ;
         .byte   6,"[ELSE]"              ;
         .word   COMPARE                 ;
@@ -151,7 +151,7 @@ BRACKETELSE5                            ;
         .word   TYPE                    ; CR+LF ." ko "     to show false branch of conditionnal compilation
         .word   REFILL                  ; REFILL Input Buffer
         .word   SETIB                   ; SET Input Buffer pointers SOURCE_LEN, SOURCE_ORG and clear >IN
-        .word   BRAN,BRACKETELSE1       ; then loop back   60 words
+        .word   BRAN,BRACKETELSE1       ; then loop back   58 words
 
 
 ;[IF]
@@ -216,7 +216,7 @@ MARKER_DOES FORTHtoASM                  ; execution part
             MOV     @TOS+,&INIVOC       ;       set VOC_LINK value for RST_STATE
             MOV     @TOS,&INIDP         ;       set DP value for RST_STATE
             MOV     @PSP+,TOS           ; --
-            JMP     RST_STATE           ;       execute RST_STATE, PWR_STATE then STATE_DOES
+            MOV     #RST_STATE,PC       ;       execute RST_STATE, PWR_STATE then STATE_DOES
 
             FORTHWORD "MARKER"          ; definition part
             CALL    #HEADER             ;4 W = DP+4
index 37c8504..6dc9b33 100644 (file)
 ; example : POPM #6,IP   pop Y,X,W,T,S,IP registers from return stack
 
 
-;;Z SKIP      char -- addr               ; skip all occurring character 'char' in input stream
-;            FORTHWORD "SKIP"            ; used by assembler to parse input stream
-SKIP:       MOV     #SOURCE_LEN,Y       ;
-            MOV     @Y+,X               ; -- char       X=length
-            MOV     @Y,W                ; -- char       X=length    W=org
-            ADD     W,X                 ; -- char       X=End       W=org
-            ADD     &TOIN,W             ; -- char       X=End       W=ptr
-SKIPLOOP:   CMP     W,X                 ; -- char       ptr=End ?
-            JZ      SKIPEND             ; -- char       yes
-            CMP.B   @W+,TOS             ; -- char       does character match?
-            JZ      SKIPLOOP            ; -- char       yes
-SKIPNEXT:   SUB     #1,W                ; -- char
-SKIPEND:    MOV     W,TOS               ; -- addr
-            SUB     @Y,W                ; -- addr       W=Ptr-Org=Toin
-            MOV     W,&TOIN             ;
-            mNEXT
-
-; https://forth-standard.org/standard/double/TwoCONSTANT
-; udlo/dlo/Flo udhi/dhi/Qhi --         create a double or a Q15.16 CONSTANT
-        FORTHWORD "2CONSTANT"
-TWOCONSTANT 
-        mDOCOL
-        .word CREATE
-        .word COMMA,COMMA       ; compile udhi/dhi/Qhi then udlo/dlo/Qlo
-        .word DOES
-PFA2CTE FORTHtoASM              ; equ 2@
-        SUB #2,PSP
-        MOV 2(TOS),0(PSP)
-        MOV @TOS,TOS
-        mSEMI
-
-; https://forth-standard.org/standard/double/TwoVARIABLE
-        FORTHWORD "2VARIABLE"
-        mDOCOL
-        .word CREATE
-        .word lit,4,ALLOT
-        .word DOES
-PFA2VAR .word EXIT
-
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : search argument "xxxx", IP is free
 ; ----------------------------------------------------------------------
 
-SearchARG                               ; separator -- n|d or abort" not found"
-; ----------------------------------------------------------------------
-; Search ARG of "#xxxx,"                ; <== PARAM10
-; Search ARG of "&xxxx,"                ; <== PARAM111
-; Search ARG of "xxxx(REG),"            ; <== PARAM130
-; Search ARG of ",&xxxx"                ; <== PARAM111 <== PARAM20
-; Search ARG of ",xxxx(REG)"            ; <== PARAM210
-            PUSHM #2,S                  ;                   PUSHM S,T
-            ASMtoFORTH                  ; -- separator      search word first
-            .word   WORDD,FIND          ; -- addr
-            .word   QTBRAN,SearchARGW   ; -- addr           if word found
-            .word   QNUMBER             ;
-            .word   QFBRAN,NotFound      ; -- addr           ABORT if not found
-FSearchEnd  .word   SearchEnd           ; -- value          goto SearchEnd if number found
-SearchARGW  FORTHtoASM                  ; -- xt             xt = CFA
-            MOV     @TOS,X              ;
-QDOVAR      CMP     #DOVAR,X
-            JNZ     QDOCON
-            ADD     #2,TOS              ; -- PFA            remplace CFA by PFA for VARIABLE words
-            JMP     SearchEnd
-QDOCON      CMP     #DOCON,X
-            JNZ     QDODOES
-            MOV     2(TOS),TOS          ; -- cte            remplace CFA by [PFA] for CONSTANT (and CREATEd) words
-            JMP     SearchEnd           ;
-QDODOES     CMP     #DODOES,X
-            JNZ     SearchEnd
-            ADD     #4,TOS              ; -- BODY           leave BODY address for DOES words
-            CMP     #PFA2CTE,2(X)       ;                   PFA = 2CONSTANT DOES ?
-            JZ      DOESDOUBLE
-            CMP     #PFA2VAR,2(X)       ;                   PFA = 2VARIABLE DOES ?
-            JNZ     SearchEnd
-DOESDOUBLE  CALL    #PFA2CTE+2          ; -- Lo Hi          2@
-            FORTHtoASM
-SearchEnd   POPM    #2,S                ;                   POPM T,S
-            RET                         ;
+;SearchARG                           ; separator -- n|d or abort" not found"
+;; Search ARG of "#xxxx,"            ; <== PARAM10
+;; Search ARG of "&xxxx,"            ; <== PARAM111
+;; Search ARG of "xxxx(REG),"        ; <== PARAM130
+;; Search ARG of ",&xxxx"            ; <== PARAM111 <== PARAM20
+;; Search ARG of ",xxxx(REG)"        ; <== PARAM210
+;            PUSHM #2,S              ;                   PUSHM S,T as OPCODE, OPCODEADR
+;            ASMtoFORTH              ; -- separator      search word first
+;            .word   WORDD,FIND      ; -- addr
+;            .word QTBRAN,SearchARGW ; -- addr           if word found
+;            .word   QNUMBER         ;
+;            .word   QFBRAN,NotFound ; -- addr           ABORT if not found
+;FSearchEnd  .word   SearchEnd       ; -- value          goto SearchEnd if number found
+;SearchARGW  FORTHtoASM              ; -- xt             xt = CFA
+;            MOV     @TOS+,X         ; -- PFA
+;QDODOES     SUB     #DODOES,X       ;                   DODOES = 1284h
+;            JNZ     QDOCON          ;
+;            ADD     #2,TOS          ; -- BODY           leave BODY address for DOES words
+;            JMP     SearchEnd       ;
+;QDOCON      CMP     #1,X            ; -- PFA            DOCON = 1285h
+;            JNZ     QDOVAR          ;
+;            MOV     @TOS,TOS        ; -- cte            replace PFA by [PFA] for CONSTANT and CREATE words
+;            JMP     SearchEnd       ;
+;QDOVAR      CMP     #2,X            ; -- PFA            DOVAR = 1286h
+;            JZ      SearchEnd       ;                   if DOVAR nothing to do
+;            SUB     #2,TOS          ; -- CFA            replace PFA by CFA for all other words
+;SearchEnd   POPM    #2,S            ;                   POPM T,S
+;            RET                     ;
+
+SearchARG                           ; separator -- n|d or abort" not found"
+; Search ARG of "#xxxx,"            ; <== PARAM10
+; Search ARG of "&xxxx,"            ; <== PARAM111
+; Search ARG of "xxxx(REG),"        ; <== PARAM130
+; Search ARG of ",&xxxx"            ; <== PARAM111 <== PARAM20
+; Search ARG of ",xxxx(REG)"        ; <== PARAM210
+            PUSHM #2,S              ;                   PUSHM S,T as OPCODE, OPCODEADR
+            ASMtoFORTH              ; -- separator      search word first
+            .word   WORDD,FIND      ; -- addr
+            .word QTBRAN,SearchARGW ; -- addr           if word found
+            .word   QNUMBER         ;
+            .word   QFBRAN,NotFound ; -- addr           ABORT if not found
+FSearchEnd  .word   SearchEnd       ; -- value          goto SearchEnd if number found
+SearchARGW  FORTHtoASM              ; -- xt             xt = CFA
+            MOV     @TOS+,X         ; -- PFA
+QDOVAR      SUB     #DOVAR,X        ;                   DOVAR = 1286h
+            JZ      SearchEnd       ;
+            ADD     #1,X            ; -- PFA            DOCON = 1285h
+            JNZ     QDODOES         ;
+            MOV     @TOS,TOS        ; -- cte
+            JMP     SearchEnd       ;
+QDODOES     ADD     #2,TOS          ; -- BODY           leave BODY address for DOES words
+            ADD     #1,X            ;                   DODOES = 1284h
+            JZ      SearchEnd       ;        
+            SUB     #4,TOS          ; -- CFA
+SearchEnd   POPM    #2,S            ;                   POPM T,S
+            RET                     ;
 
 ; Arg_Double_to_single conversion needed only for OPCODE type V|VI, 2th pass.
-ARGD2S      BIT #UF9,SR         ; -- Lo Hi
+ARGD2S      BIT #UF9,SR             ; -- Lo Hi
             JZ ARGD2SEND
-            MOV @PSP+,TOS       ; -- Lo         skip hi
+            MOV @PSP+,TOS           ; -- Lo         skip hi
 ARGD2SEND   RET
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : search REG
 ; ----------------------------------------------------------------------
 
-; compile $xxxx of $xxxx(REG) then SearchREG
-; ----------------------------------------------------------------------
-ComputeARGParenREG              ; sep -- Rn
-; compute REG of "xxxx(REG),"   ;               <== PARAM130, sep=','
-; compute REG of ",xxxx(REG)"   ;               <== PARAM210, sep=' '
-            MOV #'(',TOS        ; -- "("        as WORD separator to find xxxx of "xxxx(REG),"
-            CALL #SearchARG     ; -- xxxx       aborted if not found
-            CALL #ARGD2S        ;               skip arg_hi if DOUBLE
+; compute arg of "xxxx(REG),"       ;               <== PARAM130, sep=','
+; compute arg of ",xxxx(REG)"       ;               <== PARAM210, sep=' '
+ComputeARGParenREG                  ; sep -- Rn
+            MOV #'(',TOS            ; -- "("        as WORD separator to find xxxx of "xxxx(REG),"
+            CALL #SearchARG         ; -- xxxx       aborted if not found
+            CALL #ARGD2S            ;               skip arg_hi if DOUBLE
             MOV &DDP,X
             ADD #2,&DDP
-            MOV TOS,0(X)        ; -- xxxx       compile xxxx
-            MOV #')',TOS        ; -- ")"        prepare separator to search REG of "xxxx(REG)"
+            MOV TOS,0(X)            ; -- xxxx       compile xxxx
+            MOV #')',TOS            ; -- ")"        prepare separator to search REG of "xxxx(REG)"
 
 ; search REG of "xxxx(REG),"    separator = ')' 
 ; search REG of ",xxxx(REG)"    separator = ')' 
@@ -152,22 +132,22 @@ ComputeARGParenREG              ; sep -- Rn
 ; search REG of "@REG+,"        separator = '+' <== PARAM121
 ; search REG of "REG,"          separator = ',' <== PARAM13
 ; search REG of ",REG"          separator = BL  <== PARAM21
-SearchREG                       ; sep -- Rn
-            PUSHM #2,S          ;               PUSHM S,T
-            PUSH &TOIN          ; -- sep        save >IN
-            ADD #1,&TOIN        ;               skip "R"
-            ASMtoFORTH          ;               search xx of Rxx
-            .word WORDD,QNUMBER ;
-            .word QFBRAN,NOTaREG ; -- xxxx       if Not a Number
-            FORTHtoASM          ; -- Rn         number is found
-            ADD #2,RSP          ;               remove >IN
-            CMP #16,TOS         ; -- Rn       
-            JHS BOUNDERROR      ;               abort if Rn out of bounds
-            JLO SearchEnd       ; -- Rn         Z=0 ==> found
-
-NOTaREG     FORTHtoASM          ; -- addr       Z=1
-            MOV @RSP+,&TOIN     ; -- addr       restore >IN
-            JMP SearchEnd       ; -- addr       Z=1 ==> not a register 
+
+SearchREG   PUSHM #2,S              ;                   PUSHM S,T as OPCODE, OPCODEADR
+            PUSH &TOIN              ; -- sep        save >IN
+            ADD #1,&TOIN            ;               skip "R"
+            ASMtoFORTH              ;               search xx of Rxx
+            .word WORDD,QNUMBER     ;
+            .word QFBRAN,NOTaREG    ; -- xxxx       if Not a Number
+            FORTHtoASM              ; -- Rn         number is found
+            ADD #2,RSP              ;               remove >IN
+            CMP #16,TOS             ; -- Rn       
+            JHS BOUNDERROR          ;               abort if Rn out of bounds
+            JLO SearchEnd           ; -- Rn         Z=0 ==> found
+
+NOTaREG     FORTHtoASM              ; -- addr       Z=1
+            MOV @RSP+,&TOIN         ; -- addr       restore >IN
+            JMP SearchEnd           ; -- addr       Z=1 ==> not a register 
 
 
 ; ----------------------------------------------------------------------
@@ -177,173 +157,130 @@ NOTaREG     FORTHtoASM          ; -- addr       Z=1
 ; PARAM1 is used for OPCODES type I (double operand) and OPCODES type II (single operand) instructions
 ; PARAM1 is used for OPCODES type V (double operand) and OPCODES type VI (single operand) extended instructions
 
-; PARAM1     separator --                   ; parse input buffer until separator and compute first operand of opcode
-                                            ; sep is comma for src and space for dst .
-
-PARAM1      mDOCOL                          ; -- sep        OPCODES types I|V sep = ','  OPCODES types II|VI sep = ' '
-            .word   FBLANK,SKIP             ; -- sep addr
-            FORTHtoASM                      ; -- sep addr
-            MOV     #0,S                    ; -- sep addr   reset ASMTYPE
-            MOV     &DDP,T                  ; -- sep addr   HERE --> OPCODEADR (opcode is preset to its address !)
-            ADD     #2,&DDP                 ; -- sep addr   cell allot for opcode
-            MOV.B   @TOS,W                  ; -- sep addr   W=first char of instruction code
-            MOV     @PSP+,TOS               ; -- sep        W=c-addr
-            CMP.B   #'#',W                  ; -- sep        W=first char
+; PARAM1     separator --           ; parse input buffer until separator and compute first operand of opcode
+                                    ; sep is comma for src and space for dst .
+PARAM1      mDOCOL                  ; -- sep        OPCODES types I|V sep = ','  OPCODES types II|VI sep = ' '
+            .word   FBLANK,SKIP     ; -- sep addr
+            FORTHtoASM              ; -- sep addr
+            MOV     #0,S            ; -- sep addr   reset OPCODE
+            MOV     &DDP,T          ; -- sep addr   HERE --> OPCODEADR (opcode is preset to its address !)
+            ADD     #2,&DDP         ; -- sep addr   cell allot for opcode
+            MOV.B   @TOS,W          ; -- sep addr   W=first char of instruction code
+            MOV     @PSP+,TOS       ; -- sep        W=c-addr
+            CMP.B   #'#',W          ; -- sep        W=first char
             JNE     PARAM11
-
 ; "#" found : case of "#xxxx,"
-PARAM10     ADD     #1,&TOIN                ; -- sep        skip # prefix
-            CALL    #SearchARG              ; -- xxxx       abort if not found
-            CALL #ARGD2S                    ;               skip arg_hi
-
-PARAM100    CMP #0,TOS                      ; -- xxxx       = 0 ?
-            JNE PARAM101
-; case of "#0,"
-            MOV #0300h,S                    ; -- 0          example : MOV #0,dst <=> MOV R3,dst
-            JMP PARAMENDOF
-
-PARAM101    CMP #1,TOS                      ; -- xxxx       = 1 ?
-            JNE PARAM102
-; case of "#1,"
-            MOV #0310h,S                    ; -- 1          example : MOV #1,dst <=> MOV 0(R3),dst
-            JMP PARAMENDOF
-
-PARAM102    CMP #2,TOS                      ; -- xxxx       = 2 ?
-            JNE PARAM104
-; case of "#2,"
-            MOV #0320h,S                    ; -- 2          ASMTYPE = 0320h  example : MOV #2, <=> MOV @R3,
-            JMP PARAMENDOF
-
-PARAM104    CMP #4,TOS                      ; -- xxxx       = 4 ?
-            JNE PARAM108
-; case of "#4,"
-            MOV #0220h,S                    ; -- 4          ASMTYPE = 0220h  example : MOV #4, <=> MOV @R2,
-            JMP PARAMENDOF
-
-PARAM108    CMP #8,TOS                      ; -- xxxx       = 8 ?
-            JNE PARAM10M1
-; case of "#8,"
-            MOV #0230h,S                    ; -- 8          ASMTYPE = 0230h  example : MOV #8, <=> MOV @R2+,
-            JMP PARAMENDOF
-
-PARAM10M1   CMP #-1,TOS                     ; -- xxxx       = -1 ?
-            JNE PARAM1000
-; case of "#-1,"
-            MOV #0330h,S                    ; -- -1         ASMTYPE = 0330h  example : MOV #-1 <=> MOV @R3+,
-            JMP PARAMENDOF
-
-; case of all others "#xxxx,"               ; -- xxxx
-PARAM1000   MOV #0030h,S                    ; -- xxxx       add immediate code type : @PC+,
-
-; case of "&xxxx,"                          ;               <== PARAM110
-; case of ",&xxxx"                          ;               <== PARAM20
-StoreArg    MOV &DDP,X                      ; -- xxxx
-            ADD #2,&DDP                     ;               cell allot for arg
-
-StoreTOS                                    ;               <== TYPE1DOES
-   MOV TOS,0(X)                             ;               compile arg
-; endcase of all "&xxxx"                    ;
-; endcase of all "#xxxx"                    ;               <== PARAM101,102,104,108,10M1
-; endcase of all "REG"|"@REG"|"@REG+"       ;               <== PARAM124
-PARAMENDOF  MOV @PSP+,TOS                   ; --
-            MOV @RSP+,IP
-            mNEXT                           ; --
-; ------------------------------------------
-
-PARAM11     CMP.B   #'&',W                  ; -- sep
+PARAM10     ADD #1,&TOIN            ; -- sep        skip # prefix
+            CALL #SearchARG         ; -- xxxx       abort if not found
+            CALL #ARGD2S            ;               skip arg_hi of OPCODE type V
+            MOV #0300h,S            ;               OPCODE = 0300h : MOV #0,dst is coded MOV R3,dst
+            CMP #0,TOS              ; -- xxxx       #0 ?
+            JZ PARAMENDOF
+            MOV #0310h,S            ;               OPCODE = 0310h : MOV #1,dst is coded MOV 0(R3),dst
+            CMP #1,TOS              ; -- xxxx       #1 ?
+            JZ PARAMENDOF
+            MOV #0320h,S            ;               OPCODE = 0320h : MOV #2,dst is coded MOV @R3,dst
+            CMP #2,TOS              ; -- xxxx       #2 ?
+            JZ PARAMENDOF
+            MOV #0220h,S            ;               OPCODE = 0220h : MOV #4,dst is coded MOV @R2,dst
+            CMP #4,TOS              ; -- xxxx       #4 ?
+            JZ PARAMENDOF
+            MOV #0230h,S            ;               OPCODE = 0230h : MOV #8,dst is coded MOV @R2+,dst 
+            CMP #8,TOS              ; -- xxxx       #8 ?
+            JZ PARAMENDOF
+            MOV #0330h,S            ; -- -1         OPCODE = 0330h : MOV #-1,dst is coded MOV @R3+,dst
+            CMP #-1,TOS             ; -- xxxx       #-1 ?
+            JZ PARAMENDOF
+            MOV #0030h,S            ; -- xxxx       for all other cases : MOV @PC+,dst
+; case of "&xxxx,"                  ;               <== PARAM110
+; case of ",&xxxx"                  ;               <== PARAM20
+StoreArg    MOV &DDP,X              ;
+            ADD #2,&DDP             ;               cell allot for arg
+StoreTOS                            ;               <== TYPE1DOES
+            MOV TOS,0(X)            ;               compile arg
+; endcase of all "&xxxx"            ;
+; endcase of all "#xxxx"            ;               <== PARAM101,102,104,108,10M1
+; endcase of all "REG"|"@REG"|"@REG+"               <== PARAM124
+PARAMENDOF  MOV @PSP+,TOS           ; --
+            MOV @RSP+,IP            ;
+            mNEXT                   ; --            S=OPCODE,T=OPCODEADR
+; ----------------------------------;
+PARAM11     CMP.B   #'&',W          ; -- sep
             JNE     PARAM12
-
-; case of "&xxxx,"                          ; -- sep        search for "&xxxx,"
-PARAM110    MOV     #0210h,S                ; -- sep        set code type : xxxx(SR) with AS=0b01 ==> x210h (and SR=0 !)
-
+; case of "&xxxx,"                  ; -- sep        search for "&xxxx,"
+PARAM110    MOV     #0210h,S        ; -- sep        set code type : xxxx(SR) with AS=0b01 ==> x210h (and SR=0 !)
 ; case of "&xxxx,"
-; case of ",&xxxx"                          ;               <== PARAM20
-PARAM111    ADD     #1,&TOIN                ; -- sep        skip "&" prefix
-            CALL    #SearchARG              ; -- arg        abort if not found
-            CALL    #ARGD2S                 ;               skip arg_hi
-            JMP     StoreArg                ; --            then ret
-; ------------------------------------------
-
-PARAM12     CMP.B   #'@',W                  ; -- sep
+; case of ",&xxxx"                  ;               <== PARAM20
+PARAM111    ADD     #1,&TOIN        ; -- sep        skip "&" prefix
+            CALL    #SearchARG      ; -- arg        abort if not found
+            CALL    #ARGD2S         ;               skip arg_hi of opcode type V
+            JMP     StoreArg        ; --            then ret
+; ----------------------------------;
+PARAM12     CMP.B   #'@',W          ; -- sep
             JNE     PARAM13
-
 ; case of "@REG,"|"@REG+,"
-PARAM120    MOV     #0020h,S                ; -- sep        init ASMTYPE with indirect code type : AS=0b10
-            ADD     #1,&TOIN                ; -- sep        skip "@" prefix
-            CALL    #SearchREG              ;               Z = not found
-            JNZ     PARAM123                ; -- value      REG of "@REG," found
-
-; case of "@REG+,"                          ; -- addr       REG of "@REG" not found, search REG of "@REG+"
-PARAM121    ADD     #0010h,S                ;               change ASMTYPE from @REG to @REG+ type
-            MOV     #'+',TOS                ; -- "+"        as WORD separator to find REG of "@REG+,"
-            CALL    #SearchREG              ; -- value|addr X = flag
-            
-; case of "@REG+,"                          ;
-; case of "xxxx(REG),"                      ;               <== PARAM130
-                                            ;               case of double separator:   +, and ),
-PARAM122    CMP     &SOURCE_LEN,&TOIN       ;               test OPCODE II parameter ending by REG+ or (REG) without comma,
-            JZ      PARAM123                ;               i.e. >IN = SOURCE_LEN : don't skip char CR !
-            ADD     #1,&TOIN                ; -- 000R       skip "," ready for the second operand search
-
+PARAM120    MOV     #0020h,S        ; -- sep        init OPCODE with indirect code type : AS=0b10
+            ADD     #1,&TOIN        ; -- sep        skip "@" prefix
+            CALL    #SearchREG      ;               Z = not found
+            JNZ     PARAM123        ; -- value      REG of "@REG," found
+; case of "@REG+,"                  ; -- addr       REG of "@REG" not found, search REG of "@REG+"
+PARAM121    ADD     #0010h,S        ;               change OPCODE from @REG to @REG+ type
+            MOV     #'+',TOS        ; -- "+"        as WORD separator to find REG of "@REG+,"
+            CALL    #SearchREG      ; -- value|addr X = flag
+; case of "@REG+,"                  ;
+; case of "xxxx(REG),"              ;               <== PARAM130
+                                    ;               case of double separator:   +, and ),
+PARAM122    CMP &SOURCE_LEN,&TOIN   ;               test OPCODE II parameter ending by REG+ or (REG) without comma,
+            JZ      PARAM123        ;               i.e. >IN = SOURCE_LEN : don't skip char CR !
+            ADD     #1,&TOIN        ; -- 000R       skip "," ready for the second operand search
 ; case of "@REG+,"
 ; case of "xxxx(REG),"
-; case of "@REG,"                           ; -- 000R       <== PARAM120
-; case of "REG,"                            ; -- 000R       <== PARAM13
-PARAM123    SWPB    TOS                     ; -- 0R00       swap bytes because it's not a dst REG typeI (not a 2 ops inst.)
-
-; case of "@REG+,"                          ; -- 0R00                   (src REG typeI)
-; case of "xxxx(REG),"                      ; -- 0R00                   (src REG typeI or dst REG typeII)
-; case of "@REG,"                           ; -- 0R00                   (src REG typeI)
-; case of "REG,"                            ; -- 0R00                   (src REG typeI or dst REG typeII)
-; case of ",REG"                            ; -- 000R       <== PARAM21     (dst REG typeI)
-; case of ",xxxx(REG)"                      ; -- 000R       <== PARAM210    (dst REG typeI)
-PARAM124    ADD     TOS,S                   ; -- 0R00|000R
+; case of "@REG,"                   ; -- 000R       <== PARAM120
+; case of "REG,"                    ; -- 000R       <== PARAM13
+PARAM123    SWPB    TOS             ; -- 0R00       swap bytes because it's not a dst REG typeI (not a 2 ops inst.)
+; case of "@REG+,"                  ; -- 0R00                   (src REG typeI)
+; case of "xxxx(REG),"              ; -- 0R00                   (src REG typeI or dst REG typeII)
+; case of "@REG,"                   ; -- 0R00                   (src REG typeI)
+; case of "REG,"                    ; -- 0R00                   (src REG typeI or dst REG typeII)
+; case of ",REG"                    ; -- 000R       <== PARAM21     (dst REG typeI)
+; case of ",xxxx(REG)"              ; -- 000R       <== PARAM210    (dst REG typeI)
+PARAM124    ADD     TOS,S           ; -- 0R00|000R
             JMP     PARAMENDOF
-; ------------------------------------------
-
-; case of "REG,"|"xxxx(REG),"               ;               first, searg REG of "REG,"
-PARAM13     CALL    #SearchREG              ; -- sep        save >IN for second parsing (case of "xxxx(REG),")
-            JNZ     PARAM123                ; -- 000R       REG of "REG," found, S=ASMTYPE=0
-
-; case of "xxxx(REG),"                      ; -- c-addr     "REG," not found
-PARAM130    ADD     #0010h,S                ;               AS=0b01 for indexing address
-            CALL    #ComputeARGparenREG     ;               compile xxxx and search REG of "(REG)"
-            JMP     PARAM122                ; 
+; ----------------------------------;
+; case of "REG,"|"xxxx(REG),"       ;               first, searg REG of "REG,"
+PARAM13     CALL    #SearchREG      ; -- sep        save >IN for second parsing (case of "xxxx(REG),")
+            JNZ     PARAM123        ; -- 000R       REG of "REG," found, S=OPCODE=0
+; case of "xxxx(REG),"              ; -- c-addr     "REG," not found
+PARAM130    ADD     #0010h,S        ;               AS=0b01 for indexing address
+            CALL #ComputeARGparenREG;               compile xxxx and search REG of "(REG)"
+            JMP     PARAM122        ; 
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : INTERPRET 2th OPERAND
 ; ----------------------------------------------------------------------
 
-INITPARAM2                                  ; for OPCODES TYPE III
-            MOV     #0,S                    ;                       init ASMTYPE=0
-            MOV     &DDP,T                  ;                       T=OPCODEADR
-            ADD     #2,&DDP                 ;                       make room for opcode
-
-; PARAM2 is used for OPCODES type I (double operand) instructions
-; PARAM2 is used for OPCODES type V (double operand) extended instructions
-
-; PARAM2     --                             ; parse input buffer until BL and compute this 2th operand
-PARAM2      mDOCOL                          ;
-            .word   FBLANK,SKIP             ;               skip space(s) between "arg1," and "arg2" if any; use not S,T.
-            FORTHtoASM                      ; -- c-addr     search for '&' of "&xxxx
-            CMP.B   #'&',0(TOS)             ;
-            MOV     #20h,TOS                ; -- ' '        as WORD separator to find xxxx of ",&xxxx"
-            JNE     PARAM21                 ;               '&' not found
-
-; case of ",&xxxx"                          ;
-PARAM20     ADD     #0082h,S                ;               change ASMTYPE : AD=1, dst = R2
-            JMP     PARAM111                ; -- ' '
-; ------------------------------------------
-
-; case of ",REG"|",xxxx(REG)                ; -- ' '        first, search REG of ",REG"
-PARAM21     CALL    #SearchREG              ;
-            JNZ     PARAM124                ; -- 000R       REG of ",REG" found
-
-; case of ",xxxx(REG)                       ; -- addr       REG not found
-PARAM210    ADD     #0080h,S                ;               set AD=1
-            CALL    #ComputeARGparenREG     ;               compile argument xxxx and search REG of "(REG)"
-            JMP     PARAM124                ; -- 000R       REG of "(REG) found
-
+PARAM3                              ; for OPCODES TYPE III
+            MOV     #0,S            ;                       init OPCODE=0
+            MOV     &DDP,T          ;                       T=OPCODEADR
+            ADD     #2,&DDP         ;                       make room for opcode
+; ----------------------------------;
+PARAM2      mDOCOL                  ;               parse input buffer until BL and compute this 2th operand
+            .word   FBLANK,SKIP     ;               skip space(s) between "arg1," and "arg2" if any; use not S,T.
+            FORTHtoASM              ; -- c-addr     search for '&' of "&xxxx
+            CMP.B   #'&',0(TOS)     ;
+            MOV     #20h,TOS        ; -- ' '        as WORD separator to find xxxx of ",&xxxx"
+            JNE     PARAM21         ;               '&' not found
+; case of ",&xxxx"                  ;
+PARAM20     ADD     #0082h,S        ;               change OPCODE : AD=1, dst = R2
+            JMP     PARAM111        ; -- ' '
+; ----------------------------------;
+; case of ",REG"|",xxxx(REG)        ; -- ' '        first, search REG of ",REG"
+PARAM21     CALL    #SearchREG      ;
+            JNZ     PARAM124        ; -- 000R       REG of ",REG" found
+; case of ",xxxx(REG)               ; -- addr       REG not found
+PARAM210    ADD     #0080h,S        ;               set AD=1
+            CALL #ComputeARGparenREG;               compile argument xxxx and search REG of "(REG)"
+            JMP     PARAM124        ; -- 000R       REG of "(REG) found
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER: OPCODE TYPE 0 : zero operand     f:-)
@@ -375,108 +312,83 @@ PARAM210    ADD     #0080h,S                ;               set AD=1
 ; ----------------------------------------------------------------------
 
 ; TYPE1DOES     -- BODYDOES      search and compute PARAM1 & PARAM2 as src and dst operands then compile instruction
-TYPE1DOES                                   ; -- BODYDOES
-            .word   lit,','                 ; -- BODYDOES ','        char separator for PARAM1
-            .word   PARAM1                  ; -- BODYDOES
-            .word   PARAM2                  ; -- BODYDOES            char separator (BL) included in PARAM2
-            FORTHtoASM                      ;
-MAKEOPCODE  MOV     @TOS,TOS                ; -- opcode             part of instruction
-            BIS     S,TOS                   ; -- opcode             opcode is complete
-            MOV     T,X                     ; -- opcode             X= OPCODEADR to compile opcode
-            JMP     StoreTOS                ; --                    then EXIT
+TYPE1DOES   .word   lit,',',PARAM1  ; -- BODYDOES
+            .word   PARAM2          ; -- BODYDOES           char separator (BL) included in PARAM2
+            FORTHtoASM              ;
+MAKEOPCODE  MOV     T,X             ; -- opcode             X= OPCODEADR to compile opcode
+            MOV     @TOS,TOS        ; -- opcode             part of instruction
+            BIS     S,TOS           ; -- opcode             opcode is complete
+            JMP     StoreTOS        ; --                    then EXIT
 
             asmword "MOV"
             mDODOES
             .word   TYPE1DOES,4000h
-
             asmword "MOV.B"
             mDODOES
             .word   TYPE1DOES,4040h
-
             asmword "ADD"
             mDODOES
             .word   TYPE1DOES,5000h
-
             asmword "ADD.B"
             mDODOES
             .word   TYPE1DOES,5040h
-
             asmword "ADDC"
             mDODOES
             .word   TYPE1DOES,6000h
-
             asmword "ADDC.B"
             mDODOES
             .word   TYPE1DOES,6040h
-
             asmword "SUBC"
             mDODOES
             .word   TYPE1DOES,7000h
-
             asmword "SUBC.B"
             mDODOES
             .word   TYPE1DOES,7040h
-
             asmword "SUB"
             mDODOES
             .word   TYPE1DOES,8000h
-
             asmword "SUB.B"
             mDODOES
             .word   TYPE1DOES,8040h
-
             asmword "CMP"
             mDODOES
             .word   TYPE1DOES,9000h
-
             asmword "CMP.B"
             mDODOES
             .word   TYPE1DOES,9040h
-
             asmword "DADD"
             mDODOES
             .word   TYPE1DOES,0A000h
-
             asmword "DADD.B"
             mDODOES
             .word   TYPE1DOES,0A040h
-
             asmword "BIT"
             mDODOES
             .word   TYPE1DOES,0B000h
-
             asmword "BIT.B"
             mDODOES
             .word   TYPE1DOES,0B040h
-
             asmword "BIC"
             mDODOES
             .word   TYPE1DOES,0C000h
-
             asmword "BIC.B"
             mDODOES
             .word   TYPE1DOES,0C040h
-
             asmword "BIS"
             mDODOES
             .word   TYPE1DOES,0D000h
-
             asmword "BIS.B"
             mDODOES
             .word   TYPE1DOES,0D040h
-
             asmword "XOR"
             mDODOES
             .word   TYPE1DOES,0E000h
-
             asmword "XOR.B"
             mDODOES
             .word   TYPE1DOES,0E040h
-
             asmword "AND"
             mDODOES
             .word   TYPE1DOES,0F000h
-
             asmword "AND.B"
             mDODOES
             .word   TYPE1DOES,0F040h
@@ -498,146 +410,134 @@ MAKEOPCODE  MOV     @TOS,TOS                ; -- opcode             part of inst
 ; OPCODE(dst) for TYPE I or TYPE II                            = 0bxxxx dst register
 ; ----------------------------------------------------------------------
 
-TYPE2DOES                                   ; -- BODYDOES
-            .word   FBLANK                  ; -- BODYDOES ' '   char separator for PARAM1
-            .word   PARAM1                  ; -- BODYDOES
-            FORTHtoASM                      ;
-            MOV     S,W                     ;
-            AND     #0070h,S                ;                   keep B/W & AS infos in ASMTYPE
-            SWPB    W                       ;                   (REG org --> REG dst)
-            AND     #000Fh,W                ;                   keep REG
-BIS_ASMTYPE BIS     W,S                     ; -- BODYDOES       add it in ASMTYPE
-            JMP     MAKEOPCODE              ; -- then end
-
-            asmword "RRC"          ; Rotate Right through Carry ( word)
+TYPE2DOES   .word   FBLANK,PARAM1   ; -- BODYDOES
+            FORTHtoASM              ;
+            MOV     S,W             ;
+            AND     #0070h,S        ;                   keep B/W & AS infos in OPCODE
+            SWPB    W               ;                   (REG org --> REG dst)
+            AND     #000Fh,W        ;                   keep REG
+BIS_ASMTYPE BIS     W,S             ; -- BODYDOES       add it in OPCODE
+            JMP     MAKEOPCODE      ; -- then end
+
+            asmword "RRC"           ; Rotate Right through Carry ( word)
             mDODOES
             .word   TYPE2DOES,1000h
-
             asmword "RRC.B"         ; Rotate Right through Carry ( byte)
             mDODOES
             .word   TYPE2DOES,1040h
-
             asmword "SWPB"          ; Swap bytes
             mDODOES
             .word   TYPE2DOES,1080h
-
             asmword "RRA"
             mDODOES
             .word   TYPE2DOES,1100h
-
             asmword "RRA.B"
             mDODOES
             .word   TYPE2DOES,1140h
-
             asmword "SXT"
             mDODOES
             .word   TYPE2DOES,1180h
-
             asmword "PUSH"
             mDODOES
             .word   TYPE2DOES,1200h
-
             asmword "PUSH.B"
             mDODOES
             .word   TYPE2DOES,1240h
-
             asmword "CALL"
             mDODOES
             .word   TYPE2DOES,1280h
 
-
-BOUNDERRWM1 ADD     #1,W                    ; <== RRAM|RRUM|RRCM|RLAM error
-BOUNDERRORW MOV     W,TOS                   ; <== PUSHM|POPM|ASM_branch error
-BOUNDERROR                                  ; <== REG number error
-            mDOCOL                          ; -- n      n = value out of bounds
+BOUNDERRWM1 ADD     #1,W            ; <== RRAM|RRUM|RRCM|RLAM error
+BOUNDERRORW MOV     W,TOS           ; <== PUSHM|POPM|ASM_branch error
+BOUNDERROR                          ; <== REG number error
+            mDOCOL                  ; -- n      n = value out of bounds
             .word   DOT,XSQUOTE
-            .byte   13,"out of bounds"
+            .byte 13,"out of bounds"
             .word   QABORTYES
 
+; --------------------------------------------------------------------------------
+; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES TYPE III : PUSHM|POPM|RLAM|RRAM|RRUM|RRCM
+; --------------------------------------------------------------------------------
+; PUSHM, syntax:    PUSHM #n,REG  with 0 < n < 17 
+; POPM syntax:       POPM #n,REG  with 0 < n < 17 
+
+
+; PUSHM order : PSP,TOS, IP,  S,  T,  W,  X,  Y, rEXIT,rDOVAR,rDOCON, rDODOES, R3, SR,RSP, PC
+; PUSHM order : R15,R14,R13,R12,R11,R10, R9, R8,  R7  ,  R6  ,  R5  ,   R4   , R3, R2, R1, R0
+
+; example : PUSHM #6,IP pushes IP,S,T,W,X,Y registers to return stack
+;
+; POPM  order :  PC,RSP, SR, R3, rDODOES,rDOCON,rDOVAR,rEXIT,  Y,  X,  W,  T,  S, IP,TOS,PSP
+; POPM  order :  R0, R1, R2, R3,   R4   ,  R5  ,  R6  ,  R7 , R8, R9,R10,R11,R12,R13,R14,R15
 
+; example : POPM #6,IP   pulls Y,X,W,T,S,IP registers from return stack
 
-; ----------------------------------------------------------------
+; RxxM syntax: RxxM #n,REG  with 0 < n < 5 
 
-TYPE3DOES                                   ; -- BODYDOES
-            .word   FBLANK,SKIP             ;                       skip spaces if any
-            FORTHtoASM                      ; -- PFADOES c-addr
-            ADD     #1,&TOIN                ;                       skip "#"
-            MOV     #',',TOS                ; -- PFADOES ","
+TYPE3DOES   .word   FBLANK,SKIP     ;                       skip spaces if any
+            FORTHtoASM              ; -- BODYDOES c-addr
+            ADD     #1,&TOIN        ;                       skip "#"
+            MOV     #',',TOS        ; -- BODYDOES ","
             ASMtoFORTH
             .word   WORDD,QNUMBER
-            .word   QFBRAN,NotFound         ;                       ABORT
-            .word   INITPARAM2              ; -- PFADOES 0x000N     S=ASMTYPE = 0x000R
+            .word   QFBRAN,NotFound ;                       ABORT
+            .word   PARAM3          ; -- BODYDOES 0x000N    S=OPCODE = 0x000R
             FORTHtoASM
-            MOV     TOS,W                   ; -- BODYDOES n         W = n
-            MOV     @PSP+,TOS               ; -- BODYDOES
-            SUB     #1,W                    ;                       W = n floored to 0
+            MOV     TOS,W           ; -- BODYDOES n         W = n
+            MOV     @PSP+,TOS       ; -- BODYDOES
+            SUB     #1,W            ;                       W = n floored to 0
             JN      BOUNDERRWM1
-            MOV     @TOS,X                  ;                       X=OPCODE
-            RLAM    #4,X                    ;                       OPCODE bit 1000h --> C
-            JNC     RxxMINSTRU              ;                       if bit 1000h = 0
-PxxxINSTRU  MOV     S,Y                     ;                       S=REG, Y=REG to test
-            RLAM    #3,X                    ;                       OPCODE bit 0200h --> C                  
-            JNC     PUSHMINSTRU             ;                       W=n-1 Y=REG
-POPMINSTRU  SUB     W,S                     ;                       to make POPM opcode, compute first REG to POP; TI is complicated....
-PUSHMINSTRU SUB     W,Y                     ;                       Y=REG-(n-1)
+            MOV     @TOS,X          ;                       X=OPCODE
+            RLAM    #4,X            ;                       OPCODE bit 1000h --> C
+            JNC     RxxMINSTRU      ;                       if bit 1000h = 0
+PxxxINSTRU  MOV     S,Y             ;                       S=REG, Y=REG to test
+            RLAM    #3,X            ;                       OPCODE bit 0200h --> C                  
+            JNC     PUSHMINSTRU     ;                       W=n-1 Y=REG
+POPMINSTRU  SUB     W,S             ;                       to make POPM opcode, compute first REG to POP; TI is complicated....
+PUSHMINSTRU SUB     W,Y             ;                       Y=REG-(n-1)
             CMP     #16,Y
-            JHS     BOUNDERRWM1             ;                       JC=JHS    (U>=)
-            RLAM    #4,W                    ;                       W = n << 4      
-            JMP     BIS_ASMTYPE             ; BODYDOES --            
-RxxMINSTRU  CMP     #4,W                    ;
-            JHS     BOUNDERRWM1             ;                       JC=JHS    (U>=)
-            SWPB    W                       ; -- BODYDOES           W = n << 8
-            RLAM    #2,W                    ;                       W = N << 10
-            JMP     BIS_ASMTYPE             ; BODYDOES --
-
-; --------------------------------------------------------------------------------
-; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES TYPE III : PUSHM|POPM|RLAM|RRAM|RRUM|RRCM
-; --------------------------------------------------------------------------------
+            JHS     BOUNDERRWM1     ;                       JC=JHS    (U>=)
+            RLAM    #4,W            ;                       W = n << 4      
+            JMP     BIS_ASMTYPE     ; BODYDOES --            
+RxxMINSTRU  CMP     #4,W            ;
+            JHS     BOUNDERRWM1     ;                       JC=JHS    (U>=)
+            SWPB    W               ; -- BODYDOES           W = n << 8
+            RLAM    #2,W            ;                       W = N << 10
+            JMP     BIS_ASMTYPE     ; BODYDOES --
 
             asmword "RRCM.A"
             mDODOES
             .word   TYPE3DOES,0040h
-
             asmword "RRCM"
             mDODOES
             .word   TYPE3DOES,0050h
-
             asmword "RRAM.A"
             mDODOES
             .word   TYPE3DOES,0140h
-
             asmword "RRAM"
             mDODOES
             .word   TYPE3DOES,0150h
-
             asmword "RLAM.A"
             mDODOES
             .word   TYPE3DOES,0240h
-
             asmword "RLAM"
             mDODOES
             .word   TYPE3DOES,0250h
-
             asmword "RRUM.A"
             mDODOES
             .word   TYPE3DOES,0340h
-
             asmword "RRUM"
             mDODOES
             .word   TYPE3DOES,0350h
-
             asmword "PUSHM.A"
             mDODOES
             .word   TYPE3DOES,1400h
-
             asmword "PUSHM"
             mDODOES
             .word   TYPE3DOES,1500h
-
             asmword "POPM.A"
             mDODOES
             .word   TYPE3DOES,1600h
-
             asmword "POPM"
             mDODOES
             .word   TYPE3DOES,1700h
@@ -655,87 +555,84 @@ RxxMINSTRU  CMP     #4,W                    ;
 ; OPCODE(code) for TYPE JL              <           = 0x38xx + (offset AND 3FF) ; branch if (N xor V) = 1
 ; OPCODE(code) for TYPE JMP                         = 0x3Cxx + (offset AND 3FF)
 
-CODE_JMP    mDOCON                      ; branch always
-            .word   3C00h
-
-            asmword "S>="               ; if >= assertion (opposite of jump if < )
+            asmword "S>="           ; if >= assertion (opposite of jump if < )
             mDOCON
             .word   3800h
 
-            asmword "S<"                ; if < assertion
+            asmword "S<"            ; if < assertion
             mDOCON
             .word   3400h
 
-            asmword "0>="               ; if 0>= assertion  ; use only with IF UNTIL WHILE !
+            asmword "0>="           ; if 0>= assertion  ; use only with IF UNTIL WHILE !
             mDOCON
             .word   3000h
 
-            asmword "0<"                ; jump if 0<        ; use only with ?JMP ?GOTO !
+            asmword "0<"            ; jump if 0<        ; use only with ?JMP ?GOTO !
             mDOCON
             .word   3000h
 
-            asmword "U<"                ; if U< assertion
+            asmword "U<"            ; if U< assertion
             mDOCON
             .word   2C00h
 
-            asmword "U>="               ; if U>= assertion
+            asmword "U>="           ; if U>= assertion
             mDOCON
             .word   2800h
 
-            asmword "0<>"               ; if <>0 assertion
+            asmword "0<>"           ; if <>0 assertion
             mDOCON
             .word   2400h
 
-            asmword "0="                ; if =0 assertion
+            asmword "0="            ; if =0 assertion
             mDOCON
             .word   2000h
 
 ;ASM IF      OPCODE -- @OPCODE1
             asmword "IF"
 ASM_IF      MOV     &DDP,W
-            MOV     TOS,0(W)            ; compile incomplete opcode
+            MOV     TOS,0(W)        ; compile incomplete opcode
             ADD     #2,&DDP
             MOV     W,TOS
             mNEXT
 
 ;ASM THEN     @OPCODE --        resolve forward branch
             asmword "THEN"
-ASM_THEN    MOV     &DDP,W              ; -- @OPCODE    W=dst
-            MOV     TOS,Y               ;               Y=@OPCODE
-ASM_THEN1   MOV     @PSP+,TOS           ; --
-            MOV     Y,X                 ;
-            ADD     #2,X                ; --        Y=@OPCODE   W=dst   X=src+2
-            SUB     X,W                 ; --        Y=@OPCODE   W=dst-src+2=displacement*2 (bytes)
-            RRA     W                   ; --        Y=@OPCODE   W=displacement (words)
+ASM_THEN    MOV     &DDP,W          ; -- @OPCODE    W=dst
+            MOV     TOS,Y           ;               Y=@OPCODE
+ASM_THEN1   MOV     @PSP+,TOS       ; --
+            MOV     Y,X             ;
+            ADD     #2,X            ; --        Y=@OPCODE   W=dst   X=src+2
+            SUB     X,W             ; --        Y=@OPCODE   W=dst-src+2=displacement*2 (bytes)
+            RRA     W               ; --        Y=@OPCODE   W=displacement (words)
             CMP     #512,W
-            JC      BOUNDERRORW         ; (JHS) unsigned branch if u> 511
-            BIS     W,0(Y)              ; --       [@OPCODE]=OPCODE completed
+            JC      BOUNDERRORW     ; (JHS) unsigned branch if u> 511
+            BIS     W,0(Y)          ; --       [@OPCODE]=OPCODE completed
             mNEXT
 
 ;C ELSE     @OPCODE1 -- @OPCODE2    branch for IF..ELSE
             asmword "ELSE"
-ASM_ELSE    MOV     &DDP,W              ; --        W=HERE
-            MOV     #3C00h,0(W)         ;           compile unconditionnal branch
-            ADD     #2,&DDP             ; --        DP+2
+ASM_ELSE    MOV     &DDP,W          ; --        W=HERE
+            MOV     #3C00h,0(W)     ;           compile unconditionnal branch
+            ADD     #2,&DDP         ; --        DP+2
             SUB     #2,PSP
-            MOV     W,0(PSP)            ; -- @OPCODE2 @OPCODE1
-            JMP     ASM_THEN            ; -- @OPCODE2
+            MOV     W,0(PSP)        ; -- @OPCODE2 @OPCODE1
+            JMP     ASM_THEN        ; -- @OPCODE2
 
-;C BEGIN    -- @BEGIN                   same as FORTH counterpart
+;C BEGIN    -- @BEGIN               same as FORTH counterpart
 
 ;C UNTIL    @BEGIN OPCODE --   resolve conditional backward branch
             asmword "UNTIL"
-ASM_UNTIL   MOV     @PSP+,W             ;  -- OPCODE           W=dst
-ASM_UNTIL1  MOV     TOS,Y
-            MOV     @PSP+,TOS           ;  --
-            MOV     &DDP,X              ;  --       Y=OPCODE   X=HERE  W=dst
-            SUB     #2,W                ;  --       Y=OPCODE   X=HERE  W=dst-2
-            SUB     X,W                 ;  --       Y=OPCODE   X=src   W=src-dst-2=displacement (bytes)
-            RRA     W                   ;  --       Y=OPCODE   X=HERE  W=displacement (words)
+ASM_UNTIL   MOV     @PSP+,W         ;  -- OPCODE                        W=@BEGIN
+ASM_UNTIL1  MOV     TOS,Y           ;               Y=OPCODE            W=@BEGIN
+ASM_UNTIL2  MOV     @PSP+,TOS       ;  --
+            MOV     &DDP,X          ;  --           Y=OPCODE    X=HERE  W=dst
+            SUB     #2,W            ;  --           Y=OPCODE    X=HERE  W=dst-2
+            SUB     X,W             ;  --           Y=OPCODE    X=src   W=src-dst-2=displacement (bytes)
+            RRA     W               ;  --           Y=OPCODE    X=HERE  W=displacement (words)
             CMP     #-512,W
-            JL      BOUNDERRORW         ; signed branch if < -512
-            AND     #3FFh,W             ;  --       Y=OPCODE   X=HERE  W=troncated negative displacement (words)
-            BIS     W,Y                 ;  --       Y=OPCODE (completed)
+            JL      BOUNDERRORW     ; signed branch if < -512
+            AND     #3FFh,W         ;  --           Y=OPCODE   X=HERE  W=troncated negative displacement (words)
+            BIS     W,Y             ;  --           Y=OPCODE (completed)
             MOV     Y,0(X)
             ADD     #2,&DDP
             mNEXT
@@ -743,237 +640,205 @@ ASM_UNTIL1  MOV     TOS,Y
 ;X AGAIN    @BEGIN --      uncond'l backward branch
 ;   unconditional backward branch
             asmword "AGAIN"
-ASM_AGAIN   mDOCOL                      ; -- @BEGIN
-            .word   CODE_JMP            ; -- @BEGIN opcode
-            .word   ASM_UNTIL           ; --
-            .word   EXIT                ; --
+ASM_AGAIN   MOV TOS,W               ;               W=@BEGIN
+            MOV #3C00h,Y            ;               Y = asmcode JMP
+            JMP ASM_UNTIL2          ;
 
 ;C WHILE    @BEGIN OPCODE -- @WHILE @BEGIN
             asmword "WHILE"
-ASM_WHILE   mDOCOL                      ; -- @BEGIN OPCODE
-            .word   ASM_IF              ; -- @BEGIN @WHILE
-            .word   SWAP                ; -- @WHILE @BEGIN
-            .word   EXIT
+ASM_WHILE   mDOCOL                  ; -- @BEGIN OPCODE
+            .word   ASM_IF,SWAP,EXIT
 
 ;C REPEAT   @WHILE @BEGIN --     resolve WHILE loop
             asmword "REPEAT"
-ASM_REPEAT  mDOCOL                      ; -- @WHILE @BEGIN
-            .word   CODE_JMP            ; -- @WHILE @BEGIN opcode
-            .word   ASM_UNTIL           ; -- @WHILE
-            .word   ASM_THEN            ; --
-            .word   EXIT
+ASM_REPEAT  mDOCOL                  ; -- @WHILE @BEGIN
+            .word   ASM_AGAIN,ASM_THEN,EXIT
 
 ; ------------------------------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : branch up to 3 backward labels and up to 3 forward labels
 ; ------------------------------------------------------------------------------------------
 ; used for non canonical branchs, as BASIC language: "goto line x"
-; when a branch to label is resolved, it's ready for new use
-
-BACKWARDDOES        ;
-    FORTHtoASM
-    MOV @RSP+,IP
-    MOV @TOS,TOS
-    MOV TOS,Y       ; Y = ASMBWx
-    MOV @PSP+,TOS   ; 
-    MOV @Y,W        ;               W = [ASMBWx]
-    CMP #0,W        ;               W = 0 ?
-    MOV #0,0(Y)     ;               preset [ASMBWx] = 0 for next use
-BACKWUSE            ; -- OPCODE
-    JNZ ASM_UNTIL1
-BACKWSET            ; --
-    MOV &DDP,0(Y)   ;               [ASMBWx] = DDP
-    mNEXT
+; labels BWx and FWx must be set at the beginning of line (>IN < 8).
+; FWx at the beginning of a line can resolve only one previous GOTO|?GOTO  FWx.
+; BWx at the beginning of a line can be resolved by any subsequent GOTO|?GOTO BWx.
+
+BACKWDOES   FORTHtoASM
+            MOV @RSP+,IP            ;
+            MOV TOS,Y               ; -- PFA        Y = ASMBWx addr
+            MOV @PSP+,TOS           ; --
+            MOV @Y,W                ;               W = LABEL
+            CMP #8,&TOIN            ;               are we colon 8 or more ?
+BACKWUSE    JHS ASM_UNTIL1          ;               yes, use this label  
+BACKWSET    MOV &DDP,0(Y)           ;               no, set LABEL = DP
+            mNEXT
 
 ; backward label 1
             asmword "BW1"
             mdodoes
-            .word BACKWARDDOES
-            .word ASMBW1    ; in RAM
-
+            .word BACKWDOES
+            .word 0
 ; backward label 2
             asmword "BW2"
             mdodoes
-            .word BACKWARDDOES
-            .word ASMBW2    ; in RAM
-
+            .word BACKWDOES
+            .word 0
 ; backward label 3
             asmword "BW3"
             mdodoes
-            .word BACKWARDDOES
-            .word ASMBW3    ; in RAM
-
-FORWARDDOES
-    FORTHtoASM
-    MOV @RSP+,IP
-    MOV &DDP,W      ;
-    MOV @TOS,TOS
-    MOV @TOS,Y      ;               Y=[ASMFWx]
-    CMP #0,Y        ;               ASMFWx = 0 ? (FWx is free?)
-    MOV #0,0(TOS)   ;               preset [ASMFWx] for next use
-FORWUSE             ; PFA -- @OPCODE
-    JNZ ASM_THEN1   ;               no
-FORWSET             ; OPCODE PFA -- 
-    MOV @PSP+,0(W)  ; -- PFA        compile incomplete opcode
-    ADD #2,&DDP     ;               increment DDP
-    MOV W,0(TOS)    ;               store @OPCODE into ASMFWx
-    MOV @PSP+,TOS   ;   --
-    mNEXT
+            .word BACKWDOES
+            .word 0
 
+FORWDOES    FORTHtoASM
+            MOV @RSP+,IP
+            MOV &DDP,W              ;
+            MOV @TOS,Y              ; -- PFA        Y=[ASMFWx]
+            CMP #8,&TOIN            ;               are we colon 8 or more ?
+FORWUSE     JLO ASM_THEN1           ;               no: resolve FWx with W=DDP, Y=ASMFWx
+FORWSET     MOV @PSP+,0(W)          ;               yes compile incomplete opcode
+            ADD #2,&DDP             ;                   increment DDP
+            MOV W,0(TOS)            ;                   store @OPCODE into ASMFWx
+            MOV @PSP+,TOS           ;   --
+            mNEXT
 
 ; forward label 1
             asmword "FW1"
             mdodoes
-            .word FORWARDDOES
-            .word ASMFW1    ; in RAM
-
+            .word FORWDOES
+            .word 0
 ; forward label 2
             asmword "FW2"
             mdodoes
-            .word FORWARDDOES
-            .word ASMFW2    ; in RAM
-
+            .word FORWDOES
+            .word 0
 ; forward label 3
             asmword "FW3"
             mdodoes
-            .word FORWARDDOES
-            .word ASMFW3    ; in RAM
-
-
-; invert FORTH conditionnal branch      FORTH_JMP_OPCODE -- LABEL_JMP_OPCODE
-INVJMP      CMP #3000h,TOS  
-            JZ INVJMPEND    ; case of JN, do nothing
-            XOR #0400h,TOS  ; case of: JNZ<-->JZ  JNC<-->JC  JL<-->JGE
-            BIT #1000h,TOS  ; 3xxxh case ?
-            JZ  INVJMPEND   ; no
-            XOR #0800h,TOS  ; complementary action for JL<-->JGE
-INVJMPEND   mNEXT
-
-;ASM    GOTO <label>                   --       unconditionnal branch to label
-            asmword "GOTO"
-            mDOCOL
-            .word   CODE_JMP,TICK   ;  -- OPCODE CFA<label>
-            .word   EXECUTE,EXIT
+            .word FORWDOES
+            .word 0
 
 ;ASM    <cond> ?GOTO <label>    OPCODE --       conditionnal branch to label
             asmword "?GOTO"
-            mDOCOL
-            .word   INVJMP,TICK     ;  -- OPCODE CFA<label>
+INVJMP      CMP #3000h,TOS          ; invert code jump process
+            JZ GOTONEXT             ; case of JN, do nothing
+            XOR #0400h,TOS          ; case of: JNZ<-->JZ  JNC<-->JC  JL<-->JGE
+            BIT #1000h,TOS          ; 3xxxh case ?
+            JZ  GOTONEXT            ; no
+            XOR #0800h,TOS          ; complementary action for JL<-->JGE
+GOTONEXT    mDOCOL
+            .word   TICK            ;  -- OPCODE CFA<label>
             .word   EXECUTE,EXIT
 
-; ----------------------------------------------------------------
-; DTCforthMSP430FR5xxx ASSEMBLER : branch to a previous definition
-; ----------------------------------------------------------------
-
-;ASM    JMP <word>          ;        --       unconditionnal branch to a previous definition
-            asmword "JMP"
-JUMP        mDOCOL
-            .word   TICK            ; -- @BACKWARD
-            .word   ASM_AGAIN,EXIT
-
-
-;ASM    <cond> ?JMP <word>  ;  OPCODE --       conditionnal branch to a previous definition
-            asmword "?JMP"
-            mDOCOL
-            .word   INVJMP,TICK,SWAP    ; 
-            .word   ASM_UNTIL,EXIT
+;ASM    GOTO <label>                   --       unconditionnal branch to label
+            asmword "GOTO"
+            SUB #2,PSP
+            MOV TOS,0(PSP)
+            MOV #3C00h,TOS          ; asmcode JMP
+            JMP GOTONEXT
 
 ; ===============================================================
 ; Extended assembler
 ; ===============================================================
 
-; Adda|Cmpa|Mova|Suba first argument process ACMS1
-
-ACMS1   mDOCOL                  ; -- BODYDOES ','   
-        .word   FBLANK,SKIP     ; -- BODYDOES ',' addr
-        FORTHtoASM              ;
-        MOV.B @TOS,X            ;                   X=first char of opcode string
-        MOV @PSP+,TOS           ; -- BODYDOES ','
-        MOV @PSP+,S             ; -- ','            S=BODYDOES
-        MOV @S,S                ;                   S=opcode
-        MOV &DDP,T              ;                   T=DDP
-        ADD #2,&DDP             ;                   make room for opcode
-;-------------------------------;
-ACMS10  CMP.B #'R',X            ; -- ','    
-        JNZ ACMS11              ;
-ACMS101 CALL #SearchREG         ; -- Rn         src
-ACMS102 RLAM #4,TOS             ;               8<<src
-        RLAM #4,TOS             ;
-ACMS103 BIS S,TOS               ;               update opcode with src|dst
-        MOV TOS,0(T)            ;               save opcode
-        MOV T,TOS               ; -- OPCODE_addr
-        mSEMI                   ;
-;-------------------------------;
-ACMS11  CMP.B #'#',X            ; -- ','        X=addr
-        JNE MOVA12              ;
-        BIC #40h,S              ;               set #opcode
-ACMS111 ADD #1,&TOIN            ;               skip '#'|'&'
-        ADD #2,&DDP             ;               make room for low #$xxxx|&$xxxx|$xxxx(REG)
-        CALL #SearchARG         ; -- Lo Hi
-        MOV @PSP+,2(T)          ; -- Hi         store $xxxx of #$x.xxxx|&$x.xxxx|$x.xxxx(REG)
-        AND #0Fh,TOS            ; -- Hi         sel Hi src
-        JMP ACMS102             ;
-;-------------------------------;
-MOVA12  CMP.B #'&',X            ; -- ','        case of MOVA &$x.xxxx
-        JNZ MOVA13              ;
-        XOR #00E0h,S            ;               set MOVA &$x.xxxx, opcode                 
-        JMP ACMS111             ;
-;-------------------------------;
-MOVA13  BIC #00F0h,S            ;               set MOVA @REG, opcode
-        CMP.B #'@',X            ; -- ','
-        JNZ MOVA14              ;
-        ADD #1,&TOIN            ;               skip '@'
-        CALL #SearchREG         ; -- Rn 
-        JNZ ACMS102             ;               if @REG found
-;-------------------------------;
-        BIS #0010h,S            ;               set @REG+ opcode
-        MOV #'+',TOS            ; -- '+'
-MOVA131 CALL #SearchREG         ; -- Rn         case of MOVA @REG+,|MOVA $x.xxxx(REG),
-        CMP &SOURCE_LEN,&TOIN   ;               test TYPE II first parameter ending by @REG+ (REG) without comma,
-        JZ ACMS102              ;               i.e. may be >IN = SOURCE_LEN: don't skip char CR !
-        ADD #1,&TOIN            ;               skip "," ready for the second operand search
-        JMP ACMS102             ;
-;-------------------------------;
-MOVA14  BIS #0030h,S            ;               set xxxx(REG), opcode
-        ADD #2,&DDP             ; -- ','        make room for first $xxxx of $0.xxxx(REG),
-        MOV #'(',TOS            ; -- "("        as WORD separator to find xxxx of "xxxx(REG),"
-        CALL #SearchARG         ; -- Lo Hi
-        MOV @PSP+,2(T)          ; -- Hi         store $xxxx as 2th word
-        MOV #')',TOS            ; -- ')'
-        JMP MOVA131             ;
-
-; Adda|Cmpa|Mova|Suba 2th argument process ACMS2
-
-;-------------------------------;
-ACMS2   mDOCOL                  ; -- OPCODE_addr 
-        .word FBLANK,SKIP       ; -- OPCODE_addr addr
-        FORTHtoASM              ;
-        MOV @PSP+,T             ; -- addr       T=OPCODE_addr
-        MOV @T,S                ;               S=opcode
-        MOV.B @TOS,X            ; -- addr       X=first char of string instruction         
-        MOV.B #' ',TOS          ; -- ' '
-;-------------------------------;
-ACMS21  CMP.B #'R',X            ; -- ' '
-        JNZ MOVA22              ;
-ACMS211 CALL #SearchREG         ; -- Rn
-        JMP ACMS103             ;
-;-------------------------------;
-MOVA22  BIC #0F0h,S             ;
-        ADD #2,&DDP             ; -- ' '        make room for $xxxx
-        CMP.B #'&',X            ;
-        JNZ MOVA23              ;
-        BIS #060h,S             ;               set ,&$x.xxxx opcode
-        ADD #1,&TOIN            ;               skip '&'
-        CALL #SearchARG         ; -- Lo Hi
-        MOV @PSP+,2(T)          ; -- Hi         store $xxxx as 2th word
-        JMP ACMS103             ;               update opcode with dst $x and write opcode
-;-------------------------------;
-MOVA23  BIS #070h,S             ;               set ,xxxx(REG) opcode
-        MOV #'(',TOS            ; -- "("        as WORD separator to find xxxx of "xxxx(REG),"
-        CALL #SearchARG         ; -- Lo Hi
-        MOV @PSP+,2(T)          ; -- Hi         write $xxxx of ,$0.xxxx(REG) as 2th word
-        MOV #')',TOS            ; -- ")"        as WORD separator to find REG of "xxxx(REG),"
-        JMP ACMS211
+; ===============================================================
+; to allow data access beyond $FFFF
+; ===============================================================
 
+; MOVA (#$x.xxxx|&$x.xxxx|$.xxxx(Rs)|Rs|@Rs|@Rs+ , &|Rd|$.xxxx(Rd)) 
+; ADDA (#$x.xxxx|Rs , Rd) 
+; CMPA (#$x.xxxx|Rs , Rd) 
+; SUBA (#$x.xxxx|Rs , Rd) 
+
+; first argument process ACMS1
+;-----------------------------------;
+ACMS1       mDOCOL                  ; -- BODYDOES ','   
+            .word   FBLANK,SKIP     ; -- BODYDOES ',' addr
+            FORTHtoASM              ;
+            MOV.B @TOS,X            ;                   X=first char of opcode string
+            MOV @PSP+,TOS           ; -- BODYDOES ','
+            MOV @PSP+,S             ; -- ','            S=BODYDOES
+            MOV @S,S                ;                   S=opcode
+            MOV &DDP,T              ;                   T=DDP
+            ADD #2,&DDP             ;                   make room for opcode
+;-----------------------------------;
+ACMS10      CMP.B #'R',X            ; -- ','    
+            JNZ ACMS11              ;
+ACMS101     CALL #SearchREG         ; -- Rn         src
+ACMS102     RLAM #4,TOS             ;               8<<src
+            RLAM #4,TOS             ;
+ACMS103     BIS S,TOS               ;               update opcode with src|dst
+            MOV TOS,0(T)            ;               save opcode
+            MOV T,TOS               ; -- OPCODE_addr
+            mSEMI                   ;
+;-----------------------------------;
+ACMS11      CMP.B #'#',X            ; -- ','        X=addr
+            JNE MOVA12              ;
+            BIC #40h,S              ;               set #opcode
+ACMS111     ADD #1,&TOIN            ;               skip '#'|'&'
+            ADD #2,&DDP             ;               make room for low #$xxxx|&$xxxx|$xxxx(REG)
+            CALL #SearchARG         ; -- Lo Hi
+            MOV @PSP+,2(T)          ; -- Hi         store $xxxx of #$x.xxxx|&$x.xxxx|$x.xxxx(REG)
+            AND #0Fh,TOS            ; -- Hi         sel Hi src
+            JMP ACMS102             ;
+;-----------------------------------;
+MOVA12      CMP.B #'&',X            ; -- ','        case of MOVA &$x.xxxx
+            JNZ MOVA13              ;
+            XOR #00E0h,S            ;               set MOVA &$x.xxxx, opcode                 
+            JMP ACMS111             ;
+;-----------------------------------;
+MOVA13      BIC #00F0h,S            ;               set MOVA @REG, opcode
+            CMP.B #'@',X            ; -- ','
+            JNZ MOVA14              ;
+            ADD #1,&TOIN            ;               skip '@'
+            CALL #SearchREG         ; -- Rn 
+            JNZ ACMS102             ;               if @REG found
+;-----------------------------------;
+            BIS #0010h,S            ;               set @REG+ opcode
+            MOV #'+',TOS            ; -- '+'
+MOVA131     CALL #SearchREG         ; -- Rn         case of MOVA @REG+,|MOVA $x.xxxx(REG),
+            CMP &SOURCE_LEN,&TOIN   ;               test TYPE II first parameter ending by @REG+ (REG) without comma,
+            JZ ACMS102              ;               i.e. may be >IN = SOURCE_LEN: don't skip char CR !
+            ADD #1,&TOIN            ;               skip "," ready for the second operand search
+            JMP ACMS102             ;
+;-----------------------------------;
+MOVA14      BIS #0030h,S            ;               set xxxx(REG), opcode
+            ADD #2,&DDP             ; -- ','        make room for first $xxxx of $0.xxxx(REG),
+            MOV #'(',TOS            ; -- "("        as WORD separator to find xxxx of "xxxx(REG),"
+            CALL #SearchARG         ; -- Lo Hi
+            MOV @PSP+,2(T)          ; -- Hi         store $xxxx as 2th word
+            MOV #')',TOS            ; -- ')'
+            JMP MOVA131             ;
+
+; 2th argument process ACMS2
+;-----------------------------------;
+ACMS2       mDOCOL                  ; -- OPCODE_addr 
+            .word FBLANK,SKIP       ; -- OPCODE_addr addr
+            FORTHtoASM              ;
+            MOV @PSP+,T             ; -- addr       T=OPCODE_addr
+            MOV @T,S                ;               S=opcode
+            MOV.B @TOS,X            ; -- addr       X=first char of string instruction         
+            MOV.B #' ',TOS          ; -- ' '
+;-----------------------------------;
+ACMS21      CMP.B #'R',X            ; -- ' '
+            JNZ MOVA22              ;
+ACMS211     CALL #SearchREG         ; -- Rn
+            JMP ACMS103             ;
+;-----------------------------------;
+MOVA22      BIC #0F0h,S             ;
+            ADD #2,&DDP             ; -- ' '        make room for $xxxx
+            CMP.B #'&',X            ;
+            JNZ MOVA23              ;
+            BIS #060h,S             ;               set ,&$x.xxxx opcode
+            ADD #1,&TOIN            ;               skip '&'
+            CALL #SearchARG         ; -- Lo Hi
+            MOV @PSP+,2(T)          ; -- Hi         store $xxxx as 2th word
+            JMP ACMS103             ;               update opcode with dst $x and write opcode
+;-----------------------------------;
+MOVA23      BIS #070h,S             ;               set ,xxxx(REG) opcode
+            MOV #'(',TOS            ; -- "("        as WORD separator to find xxxx of "xxxx(REG),"
+            CALL #SearchARG         ; -- Lo Hi
+            MOV @PSP+,2(T)          ; -- Hi         write $xxxx of ,$0.xxxx(REG) as 2th word
+            MOV #')',TOS            ; -- ")"        as WORD separator to find REG of "xxxx(REG),"
+            JMP ACMS211
 
 ; --------------------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES IV 2 operands: Adda|Cmpa|Mova|Suba (without extended word)
@@ -982,28 +847,24 @@ MOVA23  BIS #070h,S             ;               set ,xxxx(REG) opcode
 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
 ; --------------------------------------------------------------------------------
 
-TYPE4DOES   .word   lit,','     ; -- BODYDOES ","        char separator for PARAM1
-            .word   ACMS1       ; -- OPCODE_addr
-            .word   ACMS2       ; -- OPCODE_addr
+TYPE4DOES   .word   lit,','         ; -- BODYDOES ","        char separator for PARAM1
+            .word   ACMS1           ; -- OPCODE_addr
+            .word   ACMS2           ; -- OPCODE_addr
             .word   DROP,EXIT
 
             asmword "MOVA"
             mDODOES
             .word   TYPE4DOES,00C0h
-
             asmword "CMPA"
             mDODOES
             .word   TYPE4DOES,00D0h
-
             asmword "ADDA"
             mDODOES
             .word   TYPE4DOES,00E0h
-
             asmword "SUBA"
             mDODOES
             .word   TYPE4DOES,00F0h
 
-
 ; --------------------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER:  OPCODE TYPE III bis: CALLA (without extended word)
 ; --------------------------------------------------------------------------------
@@ -1011,154 +872,153 @@ TYPE4DOES   .word   lit,','     ; -- BODYDOES ","        char separator for PARA
 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
 ; --------------------------------------------------------------------------------
 
-        asmword "CALLA"
-        mDOCOL
-        .word FBLANK,SKIP   ; -- addr
-        FORTHtoASM
-        MOV &DDP,T          ;           T = DDP
-        ADD #2,&DDP         ;           make room for opcode
-        MOV.B @TOS,TOS      ; -- char   First char of opcode
-CALLA0  MOV #134h,S         ;           134h<<4 = 1340h = opcode for CALLA Rn
-        CMP.B #'R',TOS   
-        JNZ CALLA1
-CALLA01 MOV.B #' ',TOS      ;        
-CALLA02 CALL #SearchREG     ; -- Rn
-CALLA03 RLAM #4,S           ;           (opcode>>4)<<4 = opcode
-        BIS TOS,S           ;           update opcode
-        MOV S,0(T)          ;           store opcode
-        MOV @PSP+,TOS
-        mSEMI
-;---------------------------;
-CALLA1  ADD #2,S            ;           136h<<4 = opcode for CALLA @REG
-        CMP.B #'@',TOS      ; -- char   Search @REG
-        JNZ CALLA2          ;
-        ADD #1,&TOIN        ;           skip '@'
-        MOV.B #' ',TOS      ; -- ' '
-        CALL #SearchREG     ;
-        JNZ  CALLA03        ;           if REG found, update opcode
-;---------------------------;
-        ADD #1,S            ;           137h<<4 = opcode for CALLA @REG+
-        MOV #'+',TOS        ; -- '+'
-        JMP CALLA02         ;
-;---------------------------;
-CALLA2  ADD #2,&DDP         ;           make room for xxxx of #$x.xxxx|&$x.xxxx|$0.xxxx(REG)
-        CMP.B #'#',TOS      ;
-        JNZ CALLA3
-        MOV #13Bh,S         ;           13Bh<<4 = opcode for CALLA #$x.xxxx
-CALLA21 ADD #1,&TOIN        ;           skip '#'|'&'
-CALLA22 CALL #SearchARG     ; -- Lo Hi
-        MOV @PSP+,2(T)      ; -- Hi     store #$xxxx|&$xxxx
-        JMP CALLA03         ;           update opcode with $x. and store opcode
-;---------------------------;
-CALLA3  CMP.B #'&',TOS   
-        JNZ CALLA4          ;
-        ADD #2,S            ;           138h<<4 = opcode for CALLA &$x.xxxx
-        JMP CALLA21
-;---------------------------;
-CALLA4  MOV.B #'(',TOS      ; -- "("
-        SUB #1,S            ;           135h<<4 = opcode for CALLA $0.xxxx(REG)
-CALLA41 CALL #SearchARG     ; -- Lo Hi
-        MOV @PSP+,2(T)      ; -- Hi     store $xxxx 
-        MOV #')',TOS        ; -- ')'
-        JMP CALLA02         ;           search Rn and update opcode
+            asmword "CALLA"
+            mDOCOL
+            .word FBLANK,SKIP       ; -- addr
+            FORTHtoASM
+            MOV &DDP,T              ;           T = DDP
+            ADD #2,&DDP             ;           make room for opcode
+            MOV.B @TOS,TOS          ; -- char   First char of opcode
+CALLA0      MOV #134h,S             ;           134h<<4 = 1340h = opcode for CALLA Rn
+            CMP.B #'R',TOS   
+            JNZ CALLA1
+CALLA01     MOV.B #' ',TOS          ;        
+CALLA02     CALL #SearchREG         ; -- Rn
+CALLA03     RLAM #4,S               ;           (opcode>>4)<<4 = opcode
+            BIS TOS,S               ;           update opcode
+            MOV S,0(T)              ;           store opcode
+            MOV @PSP+,TOS
+            mSEMI
+;-----------------------------------;
+CALLA1      ADD #2,S                ;           136h<<4 = opcode for CALLA @REG
+            CMP.B #'@',TOS          ; -- char   Search @REG
+            JNZ CALLA2              ;
+            ADD #1,&TOIN            ;           skip '@'
+            MOV.B #' ',TOS          ; -- ' '
+            CALL #SearchREG         ;
+            JNZ  CALLA03            ;           if REG found, update opcode
+;-----------------------------------;
+            ADD #1,S                ;           137h<<4 = opcode for CALLA @REG+
+            MOV #'+',TOS            ; -- '+'
+            JMP CALLA02             ;
+;-----------------------------------;
+CALLA2      ADD #2,&DDP             ;           make room for xxxx of #$x.xxxx|&$x.xxxx|$0.xxxx(REG)
+            CMP.B #'#',TOS          ;
+            JNZ CALLA3
+            MOV #13Bh,S             ;           13Bh<<4 = opcode for CALLA #$x.xxxx
+CALLA21     ADD #1,&TOIN            ;           skip '#'|'&'
+CALLA22     CALL #SearchARG         ; -- Lo Hi
+            MOV @PSP+,2(T)          ; -- Hi     store #$xxxx|&$xxxx
+            JMP CALLA03             ;           update opcode with $x. and store opcode
+;-----------------------------------;
+CALLA3      CMP.B #'&',TOS   
+            JNZ CALLA4              ;
+            ADD #2,S                ;           138h<<4 = opcode for CALLA &$x.xxxx
+            JMP CALLA21
+;-----------------------------------;
+CALLA4      MOV.B #'(',TOS          ; -- "("
+            SUB #1,S                ;           135h<<4 = opcode for CALLA $0.xxxx(REG)
+CALLA41     CALL #SearchARG         ; -- Lo Hi
+            MOV @PSP+,2(T)          ; -- Hi     store $xxxx 
+            MOV #')',TOS            ; -- ')'
+            JMP CALLA02             ;           search Rn and update opcode
     
 
-
 ; PRMX1 is used for OPCODES type V (double operand) and OPCODES type VI (single operand) extended instructions
 
-PRMX1   mDOCOL                  ; -- sep            OPCODES type V|VI separator = ','|' '
-        .word FBLANK,SKIP       ; -- sep addr
-        FORTHtoASM              ;
-        MOV.B @TOS,X            ; -- sep addr       X= first char of opcode string
-        MOV @PSP+,TOS           ; -- sep
-        MOV #1800h,S            ;                   init S=Extended word
-;-------------------------------;
-PRMX10  CMP.B #'R',X            ; -- sep
-        JNZ PRMX11              ;
-PRMX101 CALL #SearchREG         ; -- Rn             Rn of REG; call SearchREG only to update >IN
-PRMX102 MOV S,TOS               ; -- EW             update Extended word
-PRMX103 mSEMI                   ; -- Ext_Word
-;-------------------------------;
-PRMX11  MOV #0,&RPT_WORD        ;                   clear RPT
-        CMP.B #'#',X            ; -- sep
-        JNZ PRMX12
-PRMX111 ADD #1,&TOIN            ; -- sep            skip '#'
-PRMX112 CALL #SearchARG         ; -- Lo Hi          search $x.xxxx of #x.xxxx,
-        ADD #2,PSP              ; -- Hi             pop unused low word
-PRMX113 AND #0Fh,TOS            ;                   
-PRMX114 RLAM #3,TOS
-        RLAM #4,TOS             ; -- 7<<Hi
-PRMX115 BIS TOS,S               ;                   update extended word with srcHi
-        JMP PRMX102
-;-------------------------------;
-PRMX12  CMP.B #'&',X            ; -- sep
-        JZ PRMX111
-;-------------------------------;                   search REG of @REG,|@REG+,
-PRMX13  CMP.B #'@',X            ; -- sep
-        JNZ PRMX14
-PRMX131 ADD #1,&TOIN            ; -- sep            skip '@'
-PRMX132 CALL #SearchREG         ; -- Rn             Rn of @REG,
-        JNZ PRMX102             ;                   if Rn found
-;-------------------------------;
-        MOV #'+',TOS            ; -- '+'
-PRMX133 ADD #1,&TOIN            ;                   skip '@'
-        CALL #SearchREG         ; -- Rn             Rn of @REG+,
-PRMX134 CMP &SOURCE_LEN,&TOIN   ;                   test case of TYPE VI first parameter without ','
-        JZ PRMX102              ;                   don't take the risk of skipping CR !
-        ADD #1,&TOIN            ;                   skip ',' ready to search 2th operand
-        JMP PRMX102             ;
-;-------------------------------;
-PRMX14  MOV #'(',TOS            ; -- '('            to find $x.xxxx of "x.xxxx(REG),"
-        CALL #SearchARG         ; -- Lo Hi                  
-        MOV TOS,0(PSP)          ; -- Hi Hi
-PRMX141 MOV #')',TOS            ; -- Hi ')'
-        CALL #SearchREG         ; -- Hi Rn
-        MOV @PSP+,TOS           ; -- Hi
-        AND #0Fh,TOS
-        BIS TOS,S
-        JMP PRMX134
-;-------------------------------;
+PRMX1       mDOCOL                  ; -- sep            OPCODES type V|VI separator = ','|' '
+            .word FBLANK,SKIP       ; -- sep addr
+            FORTHtoASM              ;
+            MOV.B @TOS,X            ; -- sep addr       X= first char of opcode string
+            MOV @PSP+,TOS           ; -- sep
+            MOV #1800h,S            ;                   init S=Extended word
+;-----------------------------------;
+PRMX10      CMP.B #'R',X            ; -- sep
+            JNZ PRMX11              ;
+PRMX101     CALL #SearchREG         ; -- Rn             Rn of REG; call SearchREG only to update >IN
+PRMX102     MOV S,TOS               ; -- EW             update Extended word
+PRMX103     mSEMI                   ; -- Ext_Word
+;-----------------------------------;
+PRMX11      MOV #0,&RPT_WORD        ;                   clear RPT
+            CMP.B #'#',X            ; -- sep
+            JNZ PRMX12
+PRMX111     ADD #1,&TOIN            ; -- sep            skip '#'
+PRMX112     CALL #SearchARG         ; -- Lo Hi          search $x.xxxx of #x.xxxx,
+            ADD #2,PSP              ; -- Hi             pop unused low word
+PRMX113     AND #0Fh,TOS            ;                   
+PRMX114     RLAM #3,TOS
+            RLAM #4,TOS             ; -- 7<<Hi
+PRMX115     BIS TOS,S               ;                   update extended word with srcHi
+            JMP PRMX102
+;-----------------------------------;
+PRMX12      CMP.B #'&',X            ; -- sep
+            JZ PRMX111
+;-----------------------------------;
+PRMX13      CMP.B #'@',X            ; -- sep
+            JNZ PRMX14
+PRMX131     ADD #1,&TOIN            ; -- sep            skip '@'
+PRMX132     CALL #SearchREG         ; -- Rn             Rn of @REG,
+            JNZ PRMX102             ;                   if Rn found
+;-----------------------------------;
+            MOV #'+',TOS            ; -- '+'
+PRMX133     ADD #1,&TOIN            ;                   skip '@'
+            CALL #SearchREG         ; -- Rn             Rn of @REG+,
+PRMX134     CMP &SOURCE_LEN,&TOIN   ;                   test case of TYPE VI first parameter without ','
+            JZ PRMX102              ;                   don't take the risk of skipping CR !
+            ADD #1,&TOIN            ;                   skip ',' ready to search 2th operand
+            JMP PRMX102             ;
+;-----------------------------------;
+PRMX14      MOV #'(',TOS            ; -- '('            to find $x.xxxx of "x.xxxx(REG),"
+            CALL #SearchARG         ; -- Lo Hi                  
+            MOV TOS,0(PSP)          ; -- Hi Hi
+PRMX141     MOV #')',TOS            ; -- Hi ')'
+            CALL #SearchREG         ; -- Hi Rn
+            MOV @PSP+,TOS           ; -- Hi
+            AND #0Fh,TOS
+            BIS TOS,S
+            JMP PRMX134
+;-----------------------------------;
 
 ; PRMX2 is used for OPCODES type V (double operand) extended instructions
         
-;-------------------------------;
-PRMX2   mDOCOL                  ; -- Extended_Word 
-        .word   FBLANK,SKIP     ; -- Extended_Word addr
-        FORTHtoASM              ;
-        MOV @PSP+,S             ; -- addr     S=Extended_Word
-        MOV.B @TOS,X            ; -- addr     X=first char of code instruction
-        MOV #' ',TOS            ; -- ' '
-;-------------------------------;
-PRMX20  CMP.B #'R',X            ; -- ' '
-        JZ  PRMX102             ;               extended word not to be updated  
-;-------------------------------;
-PRMX21  MOV #0,&RPT_WORD        ;
-        CMP.B #'&',X            ;
-        JNZ PRMX22              ;
-PRMX211 ADD #1,&TOIN            ; -- ' '      skip '&'
-PRMX212 CALL #SearchARG         ; -- Lo Hi
-PRMX213 ADD #2,PSP              ; -- hi       pop low word
-        AND #0Fh,TOS            ; -- Hi
-        JMP PRMX115             ;               update Extended word with dst_Hi
-;-------------------------------;
-PRMX22  MOV #'(',TOS            ; -- '('      as WORD separator to find xxxx of "xxxx(REG)"
-        CALL #SearchARG         ; -- Lo Hi    search x.xxxx of x.xxxx(REG)
-        JMP PRMX213
-
+;-----------------------------------;
+PRMX2       mDOCOL                  ; -- Extended_Word 
+            .word   FBLANK,SKIP     ; -- Extended_Word addr
+            FORTHtoASM              ;
+            MOV @PSP+,S             ; -- addr     S=Extended_Word
+            MOV.B @TOS,X            ; -- addr     X=first char of code instruction
+            MOV #' ',TOS            ; -- ' '
+;-----------------------------------;
+PRMX20      CMP.B #'R',X            ; -- ' '
+            JZ  PRMX102             ;               extended word not to be updated  
+;-----------------------------------;
+PRMX21      MOV #0,&RPT_WORD        ;
+            CMP.B #'&',X            ;
+            JNZ PRMX22              ;
+PRMX211     ADD #1,&TOIN            ; -- ' '      skip '&'
+PRMX212     CALL #SearchARG         ; -- Lo Hi
+PRMX213     ADD #2,PSP              ; -- hi       pop low word
+            AND #0Fh,TOS            ; -- Hi
+            JMP PRMX115             ;               update Extended word with dst_Hi
+;-----------------------------------;
+PRMX22      MOV #'(',TOS            ; -- '('      as WORD separator to find xxxx of "xxxx(REG)"
+            CALL #SearchARG         ; -- Lo Hi    search x.xxxx of x.xxxx(REG)
+            JMP PRMX213
+    
 ; UPDATE_eXtendedWord
-;-------------------------------;
-UPDATE_XW                       ;   BODYDOES Extended_Word -- BODYDOES+2    >IN R--
-            MOV &DDP,T          ;
-            ADD #2,&DDP         ;                   make room for extended word
-            MOV TOS,S           ;                   S = Extended_Word
-            MOV @PSP+,TOS       ; -- BODYDOES
-            BIS &RPT_WORD,S     ;                   update Extended_word with RPT_WORD
-            MOV #0,&RPT_WORD    ;                   clear RPT before next instruction
-            BIS @TOS+,S         ; -- BODYDOES+2     update Extended_word with [BODYDOES] = A/L bit
-            MOV S,0(T)          ;                   store extended word
-            MOV @RSP+,&TOIN     ;                   >IN R--     restore >IN at the start of instruction string
-            mNEXT               ;
-;-------------------------------;
+;-----------------------------------;
+UPDATE_XW                           ;   BODYDOES Extended_Word -- BODYDOES+2    >IN R--
+            MOV &DDP,T              ;
+            ADD #2,&DDP             ;                   make room for extended word
+            MOV TOS,S               ;                   S = Extended_Word
+            MOV @PSP+,TOS           ; -- BODYDOES
+            BIS &RPT_WORD,S         ;                   update Extended_word with RPT_WORD
+            MOV #0,&RPT_WORD        ;                   clear RPT before next instruction
+            BIS @TOS+,S             ; -- BODYDOES+2     update Extended_word with [BODYDOES] = A/L bit
+            MOV S,0(T)              ;                   store extended word
+            MOV @RSP+,&TOIN         ;                   >IN R--     restore >IN at the start of instruction string
+            mNEXT                   ;
+;-----------------------------------;
 
 ; --------------------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES V extended double operand
@@ -1173,154 +1033,118 @@ UPDATE_XW                       ;   BODYDOES Extended_Word -- BODYDOES+2    >IN
 ; pass 2: instruction process by TYPE1DOES with [BODYDOES+2] value
 ; all numeric arguments must be written as DOUBLE numbers (including a point) : $x.xxxx
 
-TYPE5DOES                                   ; -- BODYDOES
-            .word   LIT,TOIN,FETCH,TOR      ; R-- >IN                    save >IN for 2th pass
-            .word   lit,','                 ; -- BODYDOES ','            char separator for PRMX1
-            .word   PRMX1                   ; -- BODYDOES Extended_Word
-            .word   PRMX2                   ; -- BODYDOES Extended_Word
-            .word   UPDATE_XW               ; -- BODYDOES+2              >IN is restored ready for 2th pass
-            .word   BRAN,TYPE1DOES          ; -- BODYDOES+2              2th pass: completes instruction with opcode = [BODYDOES+2]
+TYPE5DOES                               ; -- BODYDOES
+            .word   LIT,TOIN,FETCH,TOR  ; R-- >IN                    save >IN for 2th pass
+            .word   lit,','             ; -- BODYDOES ','            char separator for PRMX1
+            .word   PRMX1,PRMX2         ; -- BODYDOES Extended_Word
+            .word   UPDATE_XW           ; -- BODYDOES+2              >IN is restored ready for 2th pass
+            .word   BRAN,TYPE1DOES      ; -- BODYDOES+2              2th pass: completes instruction with opcode = [BODYDOES+2]
 
             asmword "MOVX"
             mDODOES
-            .word   TYPE5DOES,40h,4000h       ; [PFADOES]=TYPE5DOES, [BODYDOES]=A/L bit, [BODYDOES+2]=OPCODE,
-
+            .word   TYPE5DOES,40h,4000h ; [PFADOES]=TYPE5DOES, [BODYDOES]=A/L bit, [BODYDOES+2]=OPCODE,
             asmword "MOVX.A"
             mDODOES
             .word   TYPE5DOES,0,4040h
-
             asmword "MOVX.B"
             mDODOES
             .word   TYPE5DOES,40h,4040h
-                             
             asmword "ADDX"
             mDODOES          
             .word   TYPE5DOES,40h,5000h
-                             
             asmword "ADDX.A"
             mDODOES          
             .word   TYPE5DOES,0,5040h
-                             
             asmword "ADDX.B"
             mDODOES          
             .word   TYPE5DOES,40h,5040h
-                             
             asmword "ADDCX"  
             mDODOES          
             .word   TYPE5DOES,40h,6000h
-                             
             asmword "ADDCX.A"
             mDODOES          
             .word   TYPE5DOES,0,6040h
-                             
             asmword "ADDCX.B"
             mDODOES          
             .word   TYPE5DOES,40h,6040h
-                             
             asmword "SUBCX"  
             mDODOES          
             .word   TYPE5DOES,40h,7000h
-
             asmword "SUBCX.A"
             mDODOES
             .word   TYPE5DOES,0,7040h
-                             
             asmword "SUBCX.B"
             mDODOES          
             .word   TYPE5DOES,40h,7040h
-                             
             asmword "SUBX"   
             mDODOES          
             .word   TYPE5DOES,40h,8000h
-                             
             asmword "SUBX.A" 
             mDODOES          
             .word   TYPE5DOES,0,8040h
-                             
             asmword "SUBX.B" 
             mDODOES          
             .word   TYPE5DOES,40h,8040h
-                             
             asmword "CMPX"   
             mDODOES          
             .word   TYPE5DOES,40h,9000h
-                             
             asmword "CMPX.A" 
             mDODOES          
             .word   TYPE5DOES,0,9040h
-                             
             asmword "CMPX.B" 
             mDODOES          
             .word   TYPE5DOES,40h,9040h
-
             asmword "DADDX"
             mDODOES
             .word   TYPE5DOES,40h,0A000h
-                             
             asmword "DADDX.A"
             mDODOES          
             .word   TYPE5DOES,0,0A040h
-                             
             asmword "DADDX.B"
             mDODOES          
             .word   TYPE5DOES,40h,0A040h
-                             
             asmword "BITX"   
             mDODOES          
             .word   TYPE5DOES,40h,0B000h
-                             
             asmword "BITX.A" 
             mDODOES          
             .word   TYPE5DOES,0,0B040h
-                             
             asmword "BITX.B" 
             mDODOES          
             .word   TYPE5DOES,40h,0B040h
-                             
             asmword "BICX"   
             mDODOES          
             .word   TYPE5DOES,40h,0C000h
-                             
             asmword "BICX.A" 
             mDODOES          
             .word   TYPE5DOES,0,0C040h
-                             
             asmword "BICX.B" 
             mDODOES          
             .word   TYPE5DOES,40h,0C040h
-
             asmword "BISX"
             mDODOES
             .word   TYPE5DOES,40h,0D000h
-                             
             asmword "BISX.A" 
             mDODOES          
             .word   TYPE5DOES,0,0D040h
-                             
             asmword "BISX.B" 
             mDODOES          
             .word   TYPE5DOES,40h,0D040h
-                             
             asmword "XORX"   
             mDODOES          
             .word   TYPE5DOES,40h,0E000h
-                             
             asmword "XORX.A" 
             mDODOES          
             .word   TYPE5DOES,0,0E040h
-                             
             asmword "XORX.B" 
             mDODOES          
             .word   TYPE5DOES,40h,0E040h
-                             
             asmword "ANDX"   
             mDODOES          
             .word   TYPE5DOES,40h,0F000h
-                             
             asmword "ANDX.A" 
             mDODOES          
             .word   TYPE5DOES,0,0F040h
-                             
             asmword "ANDX.B" 
             mDODOES          
             .word   TYPE5DOES,40h,0F040h
@@ -1337,73 +1161,58 @@ TYPE5DOES                                   ; -- BODYDOES
 ; pass 2: instruction process by TYPE2DOES with [BODYDOES+2] value
 ; all numeric arguments must be written as DOUBLE numbers (including a point) : $x.xxxx
 
-TYPE6DOES                                   ; -- BODYDOES
-            .word   LIT,TOIN,FETCH,TOR      ;                       save >IN for 2th pass
-            .word   FBLANK                  ; -- BODYDOES ' '
-            .word   PRMX1                   ; -- BODYDOES Extended_Word  
-            .word   UPDATE_XW               ; -- BODYDOES+2
-            .word   BRAN,TYPE2DOES          ; -- BODYDOES+2         pass 2: completes instruction with opcode = [BODYDOES+2]
+TYPE6DOES                               ; -- BODYDOES
+            .word   LIT,TOIN,FETCH,TOR  ;                       save >IN for 2th pass
+            .word   FBLANK              ; -- BODYDOES ' '
+            .word   PRMX1               ; -- BODYDOES Extended_Word  
+            .word   UPDATE_XW           ; -- BODYDOES+2
+            .word   BRAN,TYPE2DOES      ; -- BODYDOES+2         pass 2: completes instruction with opcode = [BODYDOES+2]
 
             asmword "RRCX"              ; ZC=0; RRCX Rx,Rx may be repeated by prefix RPT #n|Rn
             mDODOES
             .word   TYPE6DOES,40h,1000h
-                             
             asmword "RRCX.A"            ; ZC=0; RRCX.A Rx may be repeated by prefix RPT #n|Rn 
             mDODOES          
             .word   TYPE6DOES,0,1040h
-                             
             asmword "RRCX.B"            ; ZC=0; RRCX.B Rx may be repeated by prefix RPT #n|Rn
             mDODOES          
             .word   TYPE6DOES,40h,1040h
-                             
             asmword "RRUX"              ; ZC=1; RRUX Rx may be repeated by prefix RPT #n|Rn
             mDODOES          
             .word   TYPE6DOES,140h,1000h
-                             
             asmword "RRUX.A"            ; ZC=1; RRUX.A Rx may be repeated by prefix RPT #n|Rn 
             mDODOES          
             .word   TYPE6DOES,100h,1040h
-                             
             asmword "RRUX.B"            ; ZC=1; RRUX.B Rx may be repeated by prefix RPT #n|Rn 
             mDODOES          
             .word   TYPE6DOES,140h,1040h
-
             asmword "SWPBX"
             mDODOES          
             .word   TYPE6DOES,40h,1080h
-                             
             asmword "SWPBX.A"
             mDODOES          
             .word   TYPE6DOES,0,1080h
-                             
             asmword "RRAX"
             mDODOES          
             .word   TYPE6DOES,40h,1100h
-                             
             asmword "RRAX.A"
             mDODOES          
             .word   TYPE6DOES,0,1140h
-                             
             asmword "RRAX.B"
             mDODOES          
             .word   TYPE6DOES,40h,1140h
-
             asmword "SXTX"
             mDODOES
             .word   TYPE6DOES,40h,1180h
-                             
             asmword "SXTX.A" 
             mDODOES          
             .word   TYPE6DOES,0,1180h
-                             
             asmword "PUSHX"  
             mDODOES          
             .word   TYPE6DOES,40h,1200h
-                             
             asmword "PUSHX.A"
             mDODOES          
             .word   TYPE6DOES,0,1240h
-                             
             asmword "PUSHX.B"
             mDODOES          
             .word   TYPE6DOES,40h,1240h
@@ -1411,22 +1220,26 @@ TYPE6DOES                                   ; -- BODYDOES
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER, RPT instruction before REG|REG,REG eXtended instructions
 ; ----------------------------------------------------------------------
-
-        asmword "RPT"       ; RPT #n | RPT [Rn]     repeat n | [Rn] times modulo 16
-        mdocol
-        .word FBLANK,SKIP
-        FORTHtoASM          ; -- addr
-        MOV @TOS,X          ;           X=char
-        MOV.B #' ',TOS      ; -- ' '    as separator
-        CMP.B #'R',X
-        JNZ RPT1
-        CALL #SearchREG     ; -- Rn
-        JZ RPT1             ;           if not found
-        BIS #80h,TOS        ; -- $008R  R=Rn
-        JMP RPT2
-RPT1    CALL #SearchARG     ; -- $xxxx
-        AND #0Fh,TOS        ; -- $000x
-RPT2    MOV TOS,&RPT_WORD
-        MOV @PSP+,TOS
-        mSEMI
-            
+; RPT #1 is coded 0 in repetition count field (count n-1)
+; please note that "RPT Rn" with [Rn]=0 has same effect as "RPT #1"
+
+RPT_WORD    .word 0
+
+            asmword "RPT"           ; RPT #n | RPT Rn     repeat n | [Rn]+1 times modulo 16
+            mdocol
+            .word FBLANK,SKIP
+            FORTHtoASM              ; -- addr
+            MOV @TOS,X              ;           X=char
+            MOV.B #' ',TOS          ; -- ' '    as separator
+            CMP.B #'R',X
+            JNZ RPT1
+            CALL #SearchREG         ; -- Rn
+            JZ RPT1                 ;           if not found
+            BIS #80h,TOS            ; -- $008R  R=Rn
+            JMP RPT2
+RPT1        CALL #SearchARG         ; -- $xxxx
+            SUB #1,TOS              ; -- n-1
+            AND #0Fh,TOS            ; -- $000x
+RPT2        MOV TOS,&RPT_WORD
+            MOV @PSP+,TOS
+            mSEMI
index b806a8b..1e9f868 100644 (file)
             CMP #0Ah,Y              ;2                   received char = LF ? (end of downloading ?)
             JNZ RXON                ;2                   no : RXON return = AKEYREAD1, to process first char of new line.
 ACCEPTNEXT  ADD #2,RSP              ;1                   yes: remove AKEYREAD1 as XON return,
-            MOV #SLEEP,X            ;2                        and set XON return = SLEEP
-            PUSHM  #4,S             ;6                        PUSHM S,T,W,X before SLEEP (and so WAKE on any interrupts)
+            PUSHM  #3,S             ;6                        PUSHM S,T,W before SLEEP (and so WAKE on any interrupts)
+            JMP SLEEP               ;2
 ; ----------------------------------;
-    .IFDEF MEMORYPROTECT
-    .IFDEF FR2_FAMILY               ;
-            MOV #0A503h,&SYSCFG0    ; disable write MAIN + INFO
-    .ELSE
-            MOV #0A501h,&MPUCTL0    ; set MPU (Memory Protection Unit) enable bit 
-    .ENDIF                          ;
-    .ENDIF
-; ----------------------------------;
-
-RXON                                ;
-; ----------------------------------;
-    .IFDEF TERMINAL3WIRES           ;
-RXON_LOOP   BIT #UCTXIFG,&TERM_IFG  ;3  wait the sending end of XON, useless at high baudrates
-            JZ RXON_LOOP            ;2
-            MOV #17,&TERM_TXBUF     ;4  move char XON into TX_buf
-    .ENDIF                          ;
-    .IFDEF TERMINAL4WIRES           ;
-            BIC.B #RTS,&HANDSHAKOUT ;4  set RTS low
-    .ENDIF                          ;
-; vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv;
-; starts first and 3th stopwatches  ;
-; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
-            RET                     ;4  to SLEEP (End of file download or quiet input) or AKEYREAD1 (get next line of file downloading)
-; ----------------------------------;
-
-; ----------------------------------;
-RXOFF                               ;
-; ----------------------------------;
-    .IFDEF TERMINAL3WIRES           ;
-RXOFF_LOOP  BIT #UCTXIFG,&TERM_IFG  ;3  wait the sending end of XOFF, useless at high baudrates
-            JZ RXOFF_LOOP           ;2
-            MOV #19,&TERM_TXBUF     ;4 move XOFF char into TX_buf
-    .ENDIF                          ;
-    .IFDEF TERMINAL4WIRES           ;
-            BIS.B #RTS,&HANDSHAKOUT ;4 set RTS high
-    .ENDIF                          ;
-            RET                     ;4 to ENDACCEPT
-; ----------------------------------;
-
-; ----------------------------------;
-    ASMWORD "SLEEP"                 ;   may be redirected
-SLEEP       MOV @PC+,PC             ;3  Code Field Address (CFA) of SLEEP
-PFASLEEP    .word   BODYSLEEP       ;   Parameter Field Address (PFA) of SLEEP, with default value
-BODYSLEEP   BIS &LPM_MODE,SR        ;3  enter in LPMx sleep mode with GIE=1
-; ----------------------------------;   default FAST FORTH mode (for its input terminal use) : LPM0.
-
-;###############################################################################################################
-;###############################################################################################################
-
-; ### #     # ####### ####### ######  ######  #     # ######  #######  #####     #     # ####### ######  #######
-;  #  ##    #    #    #       #     # #     # #     # #     #    #    #     #    #     # #       #     # #
-;  #  # #   #    #    #       #     # #     # #     # #     #    #    #          #     # #       #     # #
-;  #  #  #  #    #    #####   ######  ######  #     # ######     #     #####     ####### #####   ######  #####
-;  #  #   # #    #    #       #   #   #   #   #     # #          #          #    #     # #       #   #   #
-;  #  #    ##    #    #       #    #  #    #  #     # #          #    #     #    #     # #       #    #  #
-; ### #     #    #    ####### #     # #     #  #####  #          #     #####     #     # ####### #     # #######
-
-;###############################################################################################################
-;###############################################################################################################
-
-
-; here, Fast FORTH sleeps, waiting any interrupt.
-; IP,S,T,W,X,Y registers (R13 to R8) are free for any interrupt routine...
-; ...and so PSP and RSP stacks with their rules of use.
-; remember: in any interrupt routine you must include : BIC #0x78,0(RSP) before RETI
-;           to force return to SLEEP.
-;           or (bad idea ? previous SR flags are lost) simply : ADD #2 RSP, then RET instead of RETI
-
-; ==================================;
-            JMP SLEEP           ;2  here is the return for any interrupts, else TERMINAL_INT  :-)
-; ==================================;
 
 
 ; **********************************;
index a557983..0bc3686 100644 (file)
@@ -429,7 +429,6 @@ DELDQ
     FORTHWORD "CLOSE"               ;
 ; ----------------------------------;
     CALL    #CloseHandleT           ;
-CLOSE_END
     mNEXT                           ;
 ; ----------------------------------;
 
@@ -703,11 +702,8 @@ OPEN_Error                          ; S= error
 ; Error 16 : NomoreHandle           ; S = error 16
 ; ----------------------------------;
     mDOCOL                          ; set ECHO, type Pathname, type #error, type "< OpenError"; no return
-    .word   XSQUOTE                 ;
+    .word   XSQUOTE                 ; don't use S register
     .byte   11,"< OpenError"        ;
-SD_ERROR
-    .word   ECHO                    ;
-    .word   HERE,COUNT,TYPE,SPACE   ;
     .word   BRAN,SD_QABORTYES       ; to insert S error as flag, no return
 ; ----------------------------------;
 
index 62bedfe..50669ac 100644 (file)
@@ -260,18 +260,17 @@ SD_CARD_ERROR                       ; <=== SD_INIT errors 4,8,$10
 SD_CARD_ID_ERROR                    ; <=== SD_INIT error $20 from forthMSP430FR_SD_LowLvl.asm
     BIS.B #SD_CS,&SD_CSOUT          ; SD_CS = high
     mDOCOL                          ;
-    .word ECHO
-    .word   XSQUOTE                 ;
+    .word   XSQUOTE                 ; don't use S register
     .byte   11,"< SD Error!"        ;
 ; ----------------------------------;
 SD_QABORTYES                        ; <=== OPEN file errors from forthMSP430FR_SD_LOAD.asm
 ; ----------------------------------;
     FORTHtoASM                      ;
-    SUB #2,PSP                      ; to avoid stack underflow crash
+    SUB #2,PSP                      ;
+    MOV TOS,0(PSP)                  ;
     MOV #10h,&BASE                  ; select hex
     MOV S,TOS                       ;
     ASMtoFORTH                      ;
-    .word   UDOT                    ;
-    .word   QABORTYES               ; no return...
+    .word UDOT,QABORTYES            ; no return...
 ; ----------------------------------;
 
index 503ce2d..3942e1c 100644 (file)
@@ -304,7 +304,7 @@ OPW_Error                           ; set ECHO, type Pathname, type #error, type
     mDOCOL                          ;
     .word   XSQUOTE                 ;
     .byte   12,"< WriteError",0     ;
-    .word   BRAN,SD_ERROR           ;
+    .word   BRAN,SD_QABORTYES       ; to insert S error as flag, no return
 ; ----------------------------------;
 
 
@@ -470,24 +470,6 @@ Write_File_End
     mNEXT                           ;
 ; ----------------------------------;
 
-;Z SD_EMIT  c --    output char c to a SD_CARD file opened as write
-; ----------------------------------;
-    FORTHWORD "SD_EMIT"             ;
-; ----------------------------------;
-SD_EMIT                             ;
-    CMP     #BytsPerSec,&BufferPtr  ; 4 file buffer is full ?
-    JLO     SD_EmitNext             ; 2
-    CALL    #Write_File             ;   BufferPtr = 0
-SD_EmitNext                         ;
-    MOV     &BufferPtr,Y            ; 3 
-    MOV.B   TOS,SD_BUF(Y)           ; 3
-    ADD     #1,&BufferPtr           ; 4
-    MOV     @PSP+,TOS               ; 2
-    mNEXT                           ; 4
-; ----------------------------------; 22~ for SD_EMIT, 22~ for EMIT
-
-
-
 
 ; ======================================================================
 ; WRITE" (APPEND part) primitive as part of OpenPathName
index 3787c7b..a67f655 100644 (file)
@@ -75,7 +75,7 @@ TERM_BUS=\$30!
 
 TERM_IN=\$200!
 TERM_REN=\$206!
-TERM_SEL=\$20C!
+TERM_SEL=\$20A!     SEL0
 TERM_IE=\$21A!
 TERM_IFG=\$21C!
 
@@ -144,7 +144,7 @@ I2CMM_IN=\$200!
 I2CMM_OUT=\$202!
 I2CMM_DIR=\$204!
 I2CMM_REN=\$206!
-I2CMM_SEL1=\$20C!
+I2CMM_SEL=\$20A!    SEL0
 I2CMM_Vec=\$FFE0!
 MMSDA=\$04!         P1.2
 MMSCL=\$08!         P1.3
@@ -154,7 +154,7 @@ I2CM_IN=\$200!
 I2CM_OUT=\$202!
 I2CM_DIR=\$204!
 I2CM_REN=\$206!
-I2CM_SEL1=\$20C!
+I2CM_SEL=\$20A!     SEL0
 I2CM_Vec=\$FFE0!
 MSDA=\$04!          P1.2
 MSCL=\$08!          P1.3
@@ -164,7 +164,7 @@ I2CS_IN=\$200!
 I2CS_OUT=\$202!
 I2CS_DIR=\$204!
 I2CS_REN=\$206!
-I2CS_SEL1=\$20C!
+I2CS_SEL=\$20A!     SEL0
 I2CS_Vec=\$FFE0!
 SSDA=\$40!          P1.2
 SSCL=\$80!          P1.3
@@ -177,7 +177,7 @@ SD_CDIN=\$201!
 SD_CSOUT=\$203!
 SD_CSDIR=\$205!
 
-SD_SEL=\$20C!   ; to configure UCB0
+SD_SEL=\$20A!   ; PASEL0 to configure UCB0
 SD_REN=\$206!   ; to configure pullup resistors
 SD_BUS=\$0E!    ; pins P1.1 as UCB0CLK, P1.2 as UCB0SIMO & P1.3 as UCB0SOMI
 
index 2a0c94c..7115431 100644 (file)
@@ -47,3 +47,6 @@ T\{=T\{!
 \}T=\}T!
 
 U\.R=U\.R!
+
+\(RTS=\(RTS!
+CTS\)=CTS\)!
diff --git a/inc/LP_MSP430FR2476.asm b/inc/LP_MSP430FR2476.asm
new file mode 100644 (file)
index 0000000..aa5d699
--- /dev/null
@@ -0,0 +1,499 @@
+; -*- coding: utf-8 -*-
+; LP_MSP430FR2476.asm
+
+; Fast Forth For Texas Instrument MSP430FR247
+;
+; Copyright (C) <2014>  <J.M. THOORENS>
+;
+; 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 <http://www.gnu.org/licenses/>.
+
+; ===================================================================================
+; in case of 3.3V powered by UARTtoUSB bridge, open J13 straps {RST,TST,V+,5V} BEFORE
+; ===================================================================================
+
+;     J101 Target    J101    eZ-FET             UARTtoUSB
+;
+;            DVSS 14 o--o 13 GND  
+;             5V0 12 o--o 11 5V0
+;            DVCC 10 o--o 9  3V3
+;    P1.5 UCA0_RX  8 o--o 7  <------------ TX   UARTtoUSB
+;    P1.4 UCA0_TX  6 o--o 5  <---------+-> RX   UARTtoUSB
+;     SBWTDIO/RST  4 o--o 3            |         _   
+;      SBWTCK/TST  2 o--o 1            +--4k7---o o-- GND
+;                                             DeepRST
+; SD_Card socket
+;  VCC -                       ----> VCC  SD_CardAdapter
+;  GND -                       <---> GND  SD_CardAdapter
+; P2.4 - UCA1 CLK       J2     ----> CLK  SD_CardAdapter (SCK)  
+; P2.6 - UCA1 TXD/SIMO  J1     ----> SDI  SD_CardAdapter (MOSI)
+; P2.5 - UCA1 RXD/SOMI  J1     <---- SDO  SD_CardAdapter (MISO)
+; P1.6 -                J4     ----> CS   SD_CardAdapter (Card Select)
+; P1.7 -                J4     <---- CD   SD_CardAdapter (Card Detect)
+; 
+; ======================================================================
+; LP_MSP430FR2476 board
+; ======================================================================
+
+; J1 - left ext.
+; 3v3
+; P1.6/UCA0CLK/TA1CLK/TDI/TCLK/A6     
+; P2.5/UCA1RXD/UCA1SOMI/CAP1.2
+; P2.6/UCA1TXD/UCA1SIMO/CAP1.3
+; P2.2/SYNC/ACLK/COMP0.1
+; P5.4/UCB1STE/TA3CLK/A11            
+; P3.5/UCB1CLK/TB0TRG/CAP3.1
+; P4.5/UCB0SOMI/UCB0SCL/TA3.2         
+; P1.3/UCB0SOMI/UCB0SCL/MCLK/A3
+; P1.2/UCB0SIMO/UCB0SDA/TA0.2/A2/VEREF-
+;
+;
+; J3 - left int.
+; 5V
+; GND
+; P1.7/UCA0STE/SMCLK/TDO/A7
+; P4.3/UCB1SOMI/UCB1SCL/TB0.5/A8
+; P4.4/UCB1SIMO/UCB1SDA/TB0.6/A9
+; P5.3/UCB1CLK/TA3.0/A10                      
+; P1.0/UCB0STE/TA0CLK/A0/VEREF+     -<J7>- LED1
+; P1.1/UCB0CLK/TA0.1/COMP0.0/A1     --- TEMPERATURE SENSOR ---<J9>--- 3V3
+; P5.7/TA2.1/COMP0.2 
+; P3.7/TA3.2/CAP2.0
+;
+; J4 - right int.
+; P5.2/UCA0TXD/UCA0SIMO/TB0.4                       
+; P5.1/UCA0RXD/UCA0SOMI/TB0.3       -<J8>- LED2Red
+; P5.0/UCA0CLK/TB0.2                -<J8>- LED2Green
+; P4.7/UCA0STE/TB0.1                -<J8>- LED2Blue
+; P6.0/TA2.2/COMP0.3
+; P3.3/TA2.1/CAP0.1
+; P6.1/TB0CLK
+; P6.2/TB0.0
+; P4.1/TA3.0/CAP2.2
+; P3.1/UCA1STE/CAP1.0
+;
+; J2 - right ext.
+; GND
+; P4.6/UCB0SIMO/UCB0SDA/TA3.1
+; P2.1/XIN
+; P2.0/XOUT
+; /RST/SBWTDIO
+; P3.2/UCB1SIMO/UCB1SDA/CAP3.2
+; P3.6/UCB1SOMI/UCB1SCL/CAP3.3
+; P4.2/TA3CLK/CAP2.3
+; P2.7/UCB1STE/CAP3.0
+; P2.4/UCA1CLK/CAP1.1
+;
+; switch-keys:
+; P4.0/TA3.1/CAP2.1                 - S1 
+; P2.3/TA2.0/CAP0.2                 - S2 
+; /RST                              - S3
+;
+; XTAL LF 32768 Hz
+; P2.0/XOUT
+; P2.1/XIN
+;
+;
+; Clocks:
+; 8 MHz DCO intern
+;
+;
+; ----------------------------------------------------------------------
+; INIT order : LOCK I/O, WDT, GPIOs, FRAM, Clock, UARTs
+; ----------------------------------------------------------------------
+
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : LOCK PMM_LOCKLPM5
+; ----------------------------------------------------------------------
+;              BIS     #LOCKLPM5,&PM5CTL0 ; unlocked by WARM
+
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : WATCHDOG TIMER A
+; ----------------------------------------------------------------------
+
+        MOV #WDTPW+WDTHOLD+WDTCNTCL,&WDTCTL    ; stop WDT
+
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : I/O
+; ----------------------------------------------------------------------
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : PORT1/2
+; ----------------------------------------------------------------------
+
+; reset state : Px{DIR,REN,SEL0,SEL1,SELC,IE,IFG,IV} = 0 ; Px{IN,OUT,IES} = ?
+
+; PORT1 usage
+; P1.0 - LED1 green   output low
+
+; PORTx default wanted state : pins as input with pullup resistor
+
+            BIS     #-1,&PAREN      ; all pins with pull up/down resistors
+            MOV     #0FFFEh,&PAOUT  ; all pins with pull up resistors  else P1.0 (LED2)
+
+    .IFDEF UCA0_TERM
+; P1.4  UCA0-TXD    --> USB2UART RXD    
+; P1.5  UCA0-RXD    <-- USB2UART TXD 
+TXD         .equ 10h      ; P1.4 = TX + FORTH Deep_RST pin
+RXD         .equ 20h      ; P1.5 = RX
+TERM_BUS    .equ 30h
+TERM_IN     .equ P1IN
+TERM_SEL    .equ P1SEL0
+TERM_REN    .equ P1REN
+    .ENDIF
+
+    .IFDEF UCA1_SD
+SD_SEL      .equ PASEL0 ; to configure UCA1
+SD_REN      .equ PAREN  ; to configure pullup resistors
+SD_BUS      .equ 7000h  ; pins P2.4 as UCA1CLK, P2.6 as UCA1SIMO & P2.5 as UCA1SOMI
+    .ENDIF
+
+SD_CD       .equ 080h   ; P1.7 as SD_CD
+SD_CS       .equ 040h   ; P1.6 as SD_CS     
+SD_CDIN     .equ P1IN
+SD_CSOUT    .equ P1OUT
+SD_CSDIR    .equ P1DIR
+
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : PORT3/4
+; ----------------------------------------------------------------------
+; reset state : Px{DIR,REN,SEL0,SEL1,SELC,IE,IFG,IV} = 0 ; Px{IN,OUT,IES} = ?
+
+            BIS     #-1,&PBREN      ; all pins 1 with pull up/down resistors
+            MOV     #07FFFh,&PBOUT  ; all pins with pull up resistors else P4.7 (LED2B)
+
+; PORT3 usage
+
+; PORT4 usage
+
+; S1 - P4.0
+
+; LED2B - J8 - P4.7
+
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : PORT5/6
+; ----------------------------------------------------------------------
+; reset state : Px{DIR,REN,SEL0,SEL1,SELC,IE,IFG,IV} = 0 ; Px{IN,OUT,IES} = ?
+
+;            BIS     #00003h,&PCDIR  ; all pins 0 as input else P5.0 (LED2G) P5.1 (LED2R)
+;            MOV     #0FFFCh,&PCOUT  ; all pins high  else P5.0 (LED2G) P5.1 (LED2R)
+;            BIS     #0FFFCh,&PCREN  ; all pins with pull resistors else P5.0 (LED2G) P5.1 (LED2R)
+
+            BIS     #-1,&PCREN      ; all pins with pull up/down resistors
+            MOV     #0FFFCh,&PCOUT  ; all pins with pull up resistors else P5.0 (LED2G) P5.1 (LED2R)
+
+; PORT5 usage
+
+; LED2R - J8 - P5.1  red LED
+; LED2G - J8 - P5.0
+
+; PORT6 usage
+
+    .IFDEF TERMINAL4WIRES
+; RTS output is wired to the CTS input of UART2USB bridge 
+; configure RTS as output high to disable RX TERM during start FORTH
+HANDSHAKOUT .equ    P6OUT
+HANDSHAKIN  .equ    P6IN
+RTS         .equ    2           ; P6.1
+            BIS.B #RTS,&P6DIR   ; RTS as output high
+        .IFDEF TERMINAL5WIRES
+; CTS input must be wired to the RTS output of UART2USB bridge 
+; configure CTS as input low (true) to avoid lock when CTS is not wired
+CTS         .equ    4           ; P6.2
+            BIC.B #CTS,&P6OUT   ; CTS input pulled down
+        .ENDIF  ; TERMINAL5WIRES
+    .ENDIF  ; TERMINAL4WIRES
+
+; ----------------------------------------------------------------------
+; FRAM config
+; ----------------------------------------------------------------------
+
+    .IF  FREQUENCY > 8
+            MOV.B   #0A5h,&FRCTL0_H ; enable FRCTL0 access
+            MOV.B   #10h,&FRCTL0    ; 1 waitstate @ 16 MHz
+            MOV.B   #01h,&FRCTL0_H  ; disable FRCTL0 access
+    .ENDIF
+
+; ----------------------------------------------------------------------
+; POWER ON RESET SYS config
+; ----------------------------------------------------------------------
+
+; SYS code                                  
+;    BIC #1,&SYSCFG0 ; enable write program in FRAM
+    MOV #0A500h,&SYSCFG0 ; enable write MAIN and INFO
+
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : CLOCK SYSTEM
+; ----------------------------------------------------------------------
+
+; CS code for MSP430FR2476
+
+; to measure REFO frequency, output ACLK on P2.2: 
+;    BIS.B #4,&P2SEL1
+;    BIS.B #4,&P2DIR
+; result : REFO = xx.xx kHz
+
+; ======================================================================
+; need to adjust FLLN (and DCO) for each device of MSP430fr2xxx family ?
+; (no problem with MSP430FR5xxx families without FLL).
+; ======================================================================
+
+;    .IF FREQUENCY = 0.5
+;
+;            MOV #0D6h,&CSCTL0          ; preset DCO = 0xD6 (measured value @ 0x180 ; to measure, type 0x180 @ U.)
+;
+;            MOV     #0001h,&CSCTL1      ; Set 1MHZ DCORSEL,disable DCOFTRIM,Modulation
+;; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;;            MOV     #100Dh,&CSCTL2      ; Set FLLD=1 (DCOCLKCDIV=DCO/2),set FLLN=0Dh
+;                                        ; fCOCLKDIV = 32768 x (13+1) = 0.459 MHz ; measured :  MHz
+;;            MOV     #100Eh,&CSCTL2      ; Set FLLD=1 (DCOCLKCDIV=DCO/2),set FLLN=0Eh
+;                                        ; fCOCLKDIV = 32768 x (14+1) = 0.491 MHz ; measured :  MHz
+;            MOV     #100Fh,&CSCTL2      ; Set FLLD=1 (DCOCLKCDIV=DCO/2),set FLLN=0Fh
+;                                        ; fCOCLKDIV = 32768 x (15+1) = 0.524 MHz ; measured :  MHz
+;; =====================================
+;            MOV     #8,X
+;
+;    .ELSEIF FREQUENCY = 1
+;
+;            MOV #00B4h,&CSCTL0          ; preset DCO = 0xB4 (measured value @ 0x180 ; to measure, type HEX 0x180 ?)
+;
+;            MOV     #0001h,&CSCTL1      ; Set 1MHZ DCORSEL,disable DCOFTRIM,Modulation
+;; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;;            MOV     #001Dh,&CSCTL2        ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1Dh
+;                                        ; fCOCLKDIV = 32768 x (29+1) = 0.983 MHz ; measured : 0.989MHz
+;            MOV     #001Eh,&CSCTL2         ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1Eh
+;                                        ; fCOCLKDIV = 32768 x (30+1) = 1.015 MHz ; measured : 1.013MHz
+;;            MOV     #001Fh,&CSCTL2        ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1Fh
+;                                        ; fCOCLKDIV = 32768 x (31+1) = 1.049 MHz ; measured : 1.046MHz
+;; =====================================
+;            MOV     #16,X
+;
+;    .ELSEIF FREQUENCY = 2
+;
+;            MOV #00B4h,&CSCTL0          ; preset DCO = 0xB4 (measured value @ 0x180 ; to measure, type HEX 0x180 ?)
+;
+;            MOV     #0003h,&CSCTL1      ; Set 2MHZ DCORSEL,disable DCOFTRIM,Modulation
+;; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;;            MOV     #003Bh,&CSCTL2        ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=3Bh
+;                                        ; fCOCLKDIV = 32768 x (59+1) = 1.996 MHz ; measured :  MHz
+;;            MOV     #003Ch,&CSCTL2         ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=3Ch
+;                                        ; fCOCLKDIV = 32768 x (60+1) = 1.998 MHz ; measured :  MHz
+;            MOV     #003Dh,&CSCTL2        ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=3Dh
+;                                        ; fCOCLKDIV = 32768 x (61+1) = 2.031 MHz ; measured :  MHz
+;; =====================================
+;            MOV     #32,X
+;
+;    .ELSEIF FREQUENCY = 4
+;
+;            MOV #00D2h,&CSCTL0          ; preset DCO = 0xD2 (measured value @ 0x180)
+;
+;            MOV     #0005h,&CSCTL1      ; Set 4MHZ DCORSEL,disable DCOFTRIM,Modulation
+;; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;;            MOV     #0078h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=78h
+;                                        ; fCOCLKDIV = 32768 x (120+1) = 3.965 MHz ; measured : 3.96MHz
+;
+;            MOV     #0079h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=79h
+;                                        ; fCOCLKDIV = 32768 x (121+1) = 3.997 MHz ; measured : 3.99MHz
+;
+;;            MOV     #007Ah,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=7Ah
+;                                        ; fCOCLKDIV = 32768 x (122+1) = 4.030 MHz ; measured : 4.020MHz
+;; =====================================
+;            MOV     #64,X
+;
+;    .ELSEIF FREQUENCY = 8
+;
+;
+;            MOV #00F3h,&CSCTL0          ; preset DCO = 0xF2 (measured value @ 0x180)
+;
+;            MOV     #0007h,&CSCTL1      ; Set 8MHZ DCORSEL,disable DCOFTRIM,Modulation
+;; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;;            MOV     #00F2h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=F2h
+;                                        ; fCOCLKDIV = 32768 x (242+1) = 7.963 MHz ; measured : 7.943MHz
+;;            MOV     #00F3h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=F3h
+;                                        ; fCOCLKDIV = 32768 x (243+1) = 7.995 MHz ; measured : 7.976MHz
+;            MOV     #00F4h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=F4h
+;                                        ; fCOCLKDIV = 32768 x (244+1) = 8.028 MHz ; measured : 8.009MHz
+;
+;;            MOV     #00F5h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=F5h
+;                                        ; fCOCLKDIV = 32768 x (245+1) = 8.061 MHz ; measured : 8.042MHz
+;
+;;            MOV     #00F8h,&CSCTL2      ; don't work with cp2102 (by low value)
+;;            MOV     #00FAh,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=FAh
+;
+;; =====================================
+;            MOV     #128,X
+;
+;    .ELSEIF FREQUENCY = 16
+;
+;            MOV #0129h,&CSCTL0          ; preset DCO = 0x129 (measured value @ 0x180)
+;
+;            MOV     #000Bh,&CSCTL1      ; Set 16MHZ DCORSEL,disable DCOFTRIM,Modulation
+;; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;;            MOV     #01E6h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1E6h
+;                                        ; fCOCLKDIV = 32768 x 486+1) = 15.958 MHz ; measured : 15.92MHz
+;;            MOV     #01E7h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1E7h
+;                                        ; fCOCLKDIV = 32768 x 487+1) = 15.991 MHz ; measured : 15.95MHz
+;;            MOV     #01E8h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1E8h
+;                                        ; fCOCLKDIV = 32768 x 488+1) = 16.023 MHz ; measured : 15.99MHz
+;            MOV     #01E9h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1E9h
+;                                        ; fCOCLKDIV = 32768 x 489+1) = 16.056 MHz ; measured : 16.02MHz
+;; =====================================
+;            MOV     #256,X
+
+    .IF FREQUENCY = 0.5
+
+;            MOV     #058h,&CSCTL0       ; preset DCO = measured value @ 0x180 (88)
+;            MOV     #0001h,&CSCTL1      ; Set 1MHZ DCORSEL,disable DCOFTRIM,Modulation
+            MOV     #1ED1h,&CSCTL0      ; preset MOD=31, DCO = measured value @ 0x180 (209)
+            MOV     #00B0h,&CSCTL1      ; Set 1MHZ DCORSEL,enable DCOFTRIM=3h ,enable Modulation to reduce EMI
+; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;            MOV     #100Dh,&CSCTL2      ; Set FLLD=1 (DCOCLKCDIV=DCO/2),set FLLN=0Dh
+                                        ; fCOCLKDIV = 32768 x (13+1) = 0.459 MHz ; measured :  MHz
+;            MOV     #100Eh,&CSCTL2      ; Set FLLD=1 (DCOCLKCDIV=DCO/2),set FLLN=0Eh
+                                        ; fCOCLKDIV = 32768 x (14+1) = 0.491 MHz ; measured :  MHz
+            MOV     #100Fh,&CSCTL2      ; Set FLLD=1 (DCOCLKCDIV=DCO/2),set FLLN=0Fh
+                                        ; fCOCLKDIV = 32768 x (15+1) = 0.524 MHz ; measured :  MHz
+; =====================================
+            MOV     #8,X
+
+    .ELSEIF FREQUENCY = 1
+
+;            MOV     #100h,&CSCTL0       ; preset DCO = 256 
+;            MOV     #00B1h,&CSCTL1      ; Set 1MHZ DCORSEL,enable DCOFTRIM=3h ,disable Modulation
+            MOV     #1EFFh,&CSCTL0       ; preset MOD=31, DCO=255  
+            MOV     #00B0h,&CSCTL1      ; Set 1MHZ DCORSEL,enable DCOFTRIM=3h ,enable Modulation to reduce EMI
+; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;            MOV     #001Dh,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1Dh
+                                        ; fCOCLKDIV = 32768 x (29+1) = 0.983 MHz ; measured : 0.989MHz
+            MOV     #001Eh,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1Eh
+                                        ; fCOCLKDIV = 32768 x (30+1) = 1.015 MHz ; measured : 1.013MHz
+;            MOV     #001Fh,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1Fh
+                                        ; fCOCLKDIV = 32768 x (31+1) = 1.049 MHz ; measured : 1.046MHz
+; =====================================
+            MOV     #16,X
+
+    .ELSEIF FREQUENCY = 2
+
+;            MOV     #100h,&CSCTL0       ; preset DCO = 256 
+;            MOV     #00B3h,&CSCTL1      ; Set 2MHZ DCORSEL,enable DCOFTRIM=3h ,disable Modulation
+            MOV     #1EFFh,&CSCTL0       ; preset MOD=31, DCO=255  
+            MOV     #00B2h,&CSCTL1      ; Set 2MHZ DCORSEL,enable DCOFTRIM=3h ,enable Modulation to reduce EMI
+; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;            MOV     #003Bh,&CSCTL2        ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=3Bh
+                                        ; fCOCLKDIV = 32768 x (59+1) = 1.966 MHz ; measured :  MHz
+            MOV     #003Ch,&CSCTL2         ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=3Ch
+                                        ; fCOCLKDIV = 32768 x (60+1) = 1.998 MHz ; measured :  MHz
+;            MOV     #003Dh,&CSCTL2        ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=3Dh
+                                        ; fCOCLKDIV = 32768 x (61+1) = 2.031 MHz ; measured :  MHz
+; =====================================
+            MOV     #32,X
+
+    .ELSEIF FREQUENCY = 4
+
+;            MOV     #100h,&CSCTL0       ; preset DCO = 256 
+;            MOV     #00B5h,&CSCTL1      ; Set 4MHZ DCORSEL,enable DCOFTRIM=3h ,disable Modulation
+            MOV     #1EFFh,&CSCTL0       ; preset MOD=31, DCO=255  
+            MOV     #00B4h,&CSCTL1      ; Set 4MHZ DCORSEL,enable DCOFTRIM=3h ,enable Modulation to reduce EMI
+; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;            MOV     #0078h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=78h
+                                        ; fCOCLKDIV = 32768 x (120+1) = 3.965 MHz ; measured : 3.96MHz
+
+            MOV     #0079h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=79h
+                                        ; fCOCLKDIV = 32768 x (121+1) = 3.997 MHz ; measured : 3.99MHz
+
+;            MOV     #007Ah,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=7Ah
+                                        ; fCOCLKDIV = 32768 x (122+1) = 4.030 MHz ; measured : 4.020MHz
+; =====================================
+            MOV     #64,X
+
+    .ELSEIF FREQUENCY = 8
+
+;            MOV     #100h,&CSCTL0       ; preset DCO = 256 
+;            MOV     #00B7h,&CSCTL1      ; Set 8MHZ DCORSEL,enable DCOFTRIM=3h ,disable Modulation
+            MOV     #1EFFh,&CSCTL0       ; preset MOD=31, DCO=255  
+            MOV     #00B6h,&CSCTL1      ; Set 8MHZ DCORSEL,enable DCOFTRIM=3h ,enable Modulation to reduce EMI
+; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;            MOV     #00F2h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=F2h
+                                        ; fCOCLKDIV = 32768 x (242+1) = 7.963 MHz ; measured : 7.943MHz
+;            MOV     #00F3h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=F3h
+                                        ; fCOCLKDIV = 32768 x (243+1) = 7.995 MHz ; measured : 7.976MHz
+            MOV     #00F4h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=F4h
+                                        ; fCOCLKDIV = 32768 x (244+1) = 8.028 MHz ; measured : 8.009MHz
+
+;            MOV     #00F5h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=F5h
+                                        ; fCOCLKDIV = 32768 x (245+1) = 8.061 MHz ; measured : 8.042MHz
+
+;            MOV     #00F8h,&CSCTL2      ; don't work with cp2102 (by low value)
+;            MOV     #00FAh,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=FAh
+
+; =====================================
+            MOV     #128,X
+
+    .ELSEIF FREQUENCY = 12
+
+;            MOV     #100h,&CSCTL0       ; preset DCO = 256 
+;            MOV     #00B9h,&CSCTL1      ; Set 12MHZ DCORSEL,enable DCOFTRIM=3h ,disable Modulation
+            MOV     #1EFFh,&CSCTL0       ; preset MOD=31, DCO=255  
+            MOV     #00B8h,&CSCTL1      ; Set 12MHZ DCORSEL,enable DCOFTRIM=3h ,enable Modulation to reduce EMI
+; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;            MOV     #016Ch,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1E6h
+                                        ; fCOCLKDIV = 32768 x 364+1) = 12.960 MHz ; measured : 11.xxxMHz
+;            MOV     #016Dh,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1E7h
+                                        ; fCOCLKDIV = 32768 x 365+1) = 11.993 MHz ; measured : 11.xxxMHz
+            MOV     #016Eh,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1E8h
+                                        ; fCOCLKDIV = 32768 x 366+1) = 12.025 MHz ; measured : 12.xxxMHz
+;            MOV     #016Fh,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1E9h
+                                        ; fCOCLKDIV = 32768 x 367+1) = 12.058 MHz ; measured : 12.xxxMHz
+; =====================================
+            MOV     #192,X
+
+    .ELSEIF FREQUENCY = 16
+
+;            MOV     #100h,&CSCTL0       ; preset DCO = 256 
+;            MOV     #00BBh,&CSCTL1      ; Set 16MHZ DCORSEL,enable DCOFTRIM=3h ,disable Modulation
+            MOV     #1EFFh,&CSCTL0      ; preset MOD=31, DCO=255  
+            MOV     #00BAh,&CSCTL1      ; Set 16MHZ DCORSEL,enable DCOFTRIM=3h ,enable Modulation to reduce EMI
+; ===================================== ;  fCOCLKDIV = REFO x (FLLN+1)
+;            MOV     #01E6h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1E6h
+                                        ; fCOCLKDIV = 32768 x 486+1) = 15.958 MHz ; measured : 15.92MHz
+;            MOV     #01E7h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1E7h
+                                        ; fCOCLKDIV = 32768 x 487+1) = 15.991 MHz ; measured : 15.95MHz
+            MOV     #01E8h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1E8h
+                                        ; fCOCLKDIV = 32768 x 488+1) = 16.023 MHz ; measured : 15.99MHz
+;            MOV     #01E9h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=1E9h
+                                        ; fCOCLKDIV = 32768 x 489+1) = 16.056 MHz ; measured : 16.02MHz
+; =====================================
+            MOV     #256,X
+
+    .ELSEIF
+    .error "bad frequency setting, only 0.5,1,2,4,8,12,16 MHz"
+    .ENDIF
+
+    .IFDEF LF_XTAL
+;            MOV     #0000h,&CSCTL3      ; FLL select XT1, FLLREFDIV=0 (default value)
+            MOV     #0000h,&CSCTL4      ; ACLOCK select XT1, MCLK & SMCLK select DCOCLKDIV
+    .ELSE
+            BIS     #0010h,&CSCTL3      ; FLL select REFCLOCK
+;            MOV     #0100h,&CSCTL4      ; ACLOCK select REFO, MCLK & SMCLK select DCOCLKDIV (default value)
+    .ENDIF
+
+            BIS &SYSRSTIV,&SAVE_SYSRSTIV; store volatile SYSRSTIV preserving a pending request for DEEP_RST
+
+ClockWaitX  MOV     #5209,Y             ; wait 0.5s before starting after POR
+
+ClockWaitY  SUB     #1,Y                ;1
+            JNZ     ClockWaitY          ;2 5209x3 = 15627 cycles delay = 15.627ms @ 1MHz
+            SUB     #1,X                ; x 16 @ 1 MHZ = 250ms
+            JNZ     ClockWaitX          ; time to stabilize power source ( 500ms )
+
+;WAITFLL     BIT #300h,&CSCTL7          ; wait FLL lock
+;            JNZ WAITFLL
diff --git a/inc/LP_MSP430FR2476.pat b/inc/LP_MSP430FR2476.pat
new file mode 100644 (file)
index 0000000..c331457
--- /dev/null
@@ -0,0 +1,347 @@
+! -*- coding: utf-8 -*-
+! LP_MSP430FR2476.pat
+!
+! Fast Forth For Texas Instrument MSP430FR247
+!
+! Copyright (C) <2014>  <J.M. THOORENS>
+!
+! 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 <http://www.gnu.org/licenses/>.
+
+
+\.f=\.4th!      to change file type
+!
+!========================
+! remove comments        
+!========================
+\\*\n=
+\s\\*\n=\n
+! ======================================================================
+! LP_MSP430FR2476 Config
+! ======================================================================
+@define{@read{@mergepath{@inpath{};MSP430FR2476.pat;}}}
+@define{@read{@mergepath{@inpath{};FastForthREGtoTI.pat;}}}
+
+
+! ======================================================================
+! LP_MSP430FR2476 board
+! ======================================================================
+!
+! ===================================================================================
+! in case of 3.3V powered by UARTtoUSB bridge, open J13 straps {RST,TST,V+,5V} BEFORE
+! ===================================================================================
+!                    
+!     J101 Target    J101    eZ-FET             UARTtoUSB
+!
+!            DVSS 14 o--o 13 GND  
+!             5V0 12 o--o 11 5V0
+!            DVCC 10 o--o 9  3V3
+!    P1.5 UCA0_RX  8 o--o 7  <------------ TX   UARTtoUSB
+!    P1.4 UCA0_TX  6 o--o 5  <---------+-> RX   UARTtoUSB
+!     SBWTDIO/RST  4 o--o 3            |         _   
+!      SBWTCK/TST  2 o--o 1            +--4k7---o o-- GND
+!                                             DeepRST
+! J1 - left ext.
+! 3v3
+! P1.6/UCA0CLK/TA1CLK/TDI/TCLK/A6     
+! P2.5/UCA1RXD/UCA1SOMI/CAP1.2
+! P2.6/UCA1TXD/UCA1SIMO/CAP1.3
+! P2.2/SYNC/ACLK/COMP0.1
+! P5.4/UCB1STE/TA3CLK/A11            
+! P3.5/UCB1CLK/TB0TRG/CAP3.1
+! P4.5/UCB0SOMI/UCB0SCL/TA3.2         
+! P1.3/UCB0SOMI/UCB0SCL/MCLK/A3
+! P1.2/UCB0SIMO/UCB0SDA/TA0.2/A2/VEREF-
+!
+!
+! J3 - left int.
+! 5V
+! GND
+! P1.7/UCA0STE/SMCLK/TDO/A7
+! P4.3/UCB1SOMI/UCB1SCL/TB0.5/A8
+! P4.4/UCB1SIMO/UCB1SDA/TB0.6/A9
+! P5.3/UCB1CLK/TA3.0/A10                      
+! P1.0/UCB0STE/TA0CLK/A0/VEREF+     - J7 - LED1
+! P1.1/UCB0CLK/TA0.1/COMP0.0/A1     - TEMPERATURE SENSOR
+! P5.7/TA2.1/COMP0.2 
+! P3.7/TA3.2/CAP2.0
+!
+! J4 - right int.
+! P5.2/UCA0TXD/UCA0SIMO/TB0.4                       
+! P5.1/UCA0RXD/UCA0SOMI/TB0.3       - J8 - LED2R          
+! P5.0/UCA0CLK/TB0.2                - J8 - LED2G
+! P4.7/UCA0STE/TB0.1                - J8 - LED2B
+! P6.0/TA2.2/COMP0.3
+! P3.3/TA2.1/CAP0.1
+! P6.1/TB0CLK
+! P6.2/TB0.0
+! P4.1/TA3.0/CAP2.2
+! P3.1/UCA1STE/CAP1.0
+!
+! J2 - right ext.
+! GND
+! P4.6/UCB0SIMO/UCB0SDA/TA3.1
+! P2.1/XIN
+! P2.0/XOUT
+! /RST
+! P3.2/UCB1SIMO/UCB1SDA/CAP3.2
+! P3.6/UCB1SOMI/UCB1SCL/CAP3.3
+! P4.2/TA3CLK/CAP2.3
+! P2.7/UCB1STE/CAP3.0
+! P2.4/UCA1CLK/CAP1.1
+!
+! switch-keys:
+! P4.0/TA3.1/CAP2.1                 - S1 
+! P2.3/TA2.0/CAP0.2                 - S2 
+! /RST                              - S3
+!
+! XTAL LF 32768 Hz
+! P2.0/XOUT
+! P2.1/XIN
+!
+!
+! Clocks:
+! 8 MHz DCO intern
+!
+!
+!
+! ===================================================================================
+! in case of 3.3V powered by UARTtoUSB bridge, open J13 straps {RST,TST,V+,5V} BEFORE
+! ===================================================================================
+!
+! -----------------------------------------------
+! MSP430FR5969        LAUNCHPAD <--> OUTPUT WORLD
+! -----------------------------------------------
+!
+! ----------------------------------------
+! Temperature sensor : jumper J9 removed !
+! ----------------------------------------
+!
+! P4.0 - Switch S1             <--- LCD contrast + (finger :-)
+! P2.3 - Switch S2             <--- LCD contrast - (finger ;-)
+!                                  
+!  GND -                       <-------+---0V0---------->  1 LCD_Vss
+!  VCC -                       >------ | --3V6-----+---->  2 LCD_Vdd
+!                                      |           |
+!                                    |___    470n ---
+!                                      ^ |        ---
+!                                     / \ BAT54    |
+!                                     ---          |
+!                                 100n |    2k2    |
+! P4.7 - TB0.1          J4     >---||--+--^/\/\/v--+---->  3 LCD_Vo (=0V6 without modulation)
+! P5.0 -                J4     ----------orange--------->  4 LCD_RS
+! P5.1 -                J4     ----------blue----------->  5 LCD_R/W
+! P5.2 -                J4     ----------black---------->  6 LCD_EN
+! P1.0 -                J3     <---------brown----------> 11 LCD_DB4
+! P1.1 -                J3     <---------red------------> 12 LCD_DB5
+! P1.2 -                J1     <---------orange---------> 13 LCD_DB5
+! P1.3 -                J1     <---------yellow---------> 14 LCD_DB7
+!        
+!                                +--4k7-< DeepRST <-- GND 
+!                                |
+! P1.4 - UCA0 TXD      J101.8  <-+->white--> RX   UARTtoUSB bridge
+! P1.5 - UCA0 RXD      J101.10 <----green--- TX   UARTtoUSB bridge
+!  VCC -               J101.16 <---- VCC  (optional supply from UARTtoUSB bridge - WARNING ! 3.3V !)
+!  GND -               J101.20 <---> GND
+! P6.1 - RTS           J4      ----blue----> CTS  UARTtoUSB bridge (optional hardware control flow)
+! P6.2 - CTS           J4      ---yellow---> RTS  UARTtoUSB bridge (optional hardware control flow)
+!        
+!
+!  VCC -                       ----> VCC  SD_CardAdapter
+!  GND -                       <---> GND  SD_CardAdapter
+! P2.4 - UCA1 CLK       J2     ----> CLK  SD_CardAdapter (SCK)  
+! P2.6 - UCA1 TXD/SIMO  J1     ----> SDI  SD_CardAdapter (MOSI)
+! P2.5 - UCA1 RXD/SOMI  J1     <---- SDO  SD_CardAdapter (MISO)
+! P1.6 -                J4     ----> CS   SD_CardAdapter (Card Select)
+! P1.7 -                J4     <---- CD   SD_CardAdapter (Card Detect)
+!                                                                   
+!
+! P2.2 -                J3.10  <---- OUT  IR_Receiver (1 TSOP32236) ───┐
+!                                                                      └┌───┐
+!  VCC -                       ----> VCC  IR_Receiver (2 TSOP32236) ────| O |
+!                                                                      ┌└───┘
+!  GND -                       <---> GND  IR_Receiver (3 TSOP32236) ───┘
+!
+! P4.3 - UCB1 SCL/SOMI  J3     ----> SCL  I2C MASTER/SLAVE
+! P4.4 - UCB1 SDA/SIMO  J3     <---> SDA  I2C MASTER/SLAVE
+
+! P3.3 -                J4     ----> SCL  SOFTWARE I2C MASTER
+! P3.2 -                J2     <---> SDA  SOFTWARE I2C MASTER
+
+
+
+! ============================================
+! FORTH I/O :
+! ============================================
+!TERMINAL 
+TERM_TX=\$10!            P1.4 = TX also Deep_RST pin
+TERM_RX=\$20!            P1.5 = RX
+TERM_BUS=\$30!
+
+TERM_IN=\$200!          P1
+TERM_REN=\$206!
+TERM_SEL=\$20A!      \ SEL0
+TERM_IE=\$21A!
+TERM_IFG=\$21C!
+TERM_Vec=\$FFE0!        UCA0
+
+TERM_CTLW0=\$500!    \ eUSCI_A0 control word 0
+TERM_CTLW1=\$502!    \ eUSCI_A0 control word 1
+TERM_BRW=\$506!
+TERM_BR0=\$506!      \ eUSCI_A0 baud rate 0
+TERM_BR1=\$507!      \ eUSCI_A0 baud rate 1
+TERM_MCTLW=\$508!    \ eUSCI_A0 modulation control
+TERM_STATW=\$50A!    \ eUSCI_A0 status
+TERM_RXBUF=\$50C!    \ eUSCI_A0 receive buffer
+TERM_TXBUF=\$50E!    \ eUSCI_A0 transmit buffer
+TERM_ABCTL=\$510!    \ eUSCI_A0 LIN control
+TERM_IRTCTL=\$512!   \ eUSCI_A0 IrDA transmit control
+TERM_IRRCTL=\$513!   \ eUSCI_A0 IrDA receive control
+TERM_IE=\$51A!       \ eUSCI_A0 interrupt enable
+TERM_IFG=\$51C!      \ eUSCI_A0 interrupt flags
+TERM_IV=\$51E!       \ eUSCI_A0 interrupt vector word
+
+RTS=2!                  P6.1
+CTS=4!                  P6.2
+HANDSHAKIN=\$241!
+HANDSHAKOUT=\$243!
+
+SD_CD=\$80!             P1.7 as SD_CD
+SD_CDIN=\$200!
+SD_CS=\$40!             P1.6 as SD_CS     
+SD_CSOUT=\$202!
+SD_CSDIR=\$204!
+
+SD_SEL=\$20A!           PASEL0 to configure UCA1
+SD_REN=\$206!           PAREN to configure pullup resistors
+SD_BUS=\$7000!          pins P2.4 as UCA1CLK, P2.6 as UCA1SIMO & P2.5 as UCA1SOMI
+
+! ============================================
+! APPLICATION I/O :
+! ============================================
+LED1_OUT=\$202!
+LED1=1!                 P1.0 green led
+
+LED2_OUT=\$242!
+LED2=2!                 P5.1 red led
+
+SW1_IN=\$221!
+SW1=1!                  P4.0 S1 
+
+SW2_IN=\$201!
+SW2=8!                  P2.3 S2
+
+
+!LCD_Vo PWM
+LCDVo_DIR=\$225!        P4
+LCDVo_SEL=\$22D!        SEL1
+LCDVo=\$80!             P4.7 as TB0.1
+!LCD command bus
+LCD_CMD_IN=\$240!       P5
+LCD_CMD_OUT=\$242
+LCD_CMD_DIR=\$244
+LCD_CMD_REN=\$246
+LCD_RS=1!               P5.0
+LCD_RW=2!               P5.1
+LCD_EN=4!               P5.2
+LCD_CMD=\$32!
+!LCD data bus
+LCD_DB_IN=\$200!        P1
+LCD_DB_OUT=\$202!
+LCD_DB_DIR=\$204!
+LCD_DB_REN=\$206!
+LCD_DB=\$0F!            P1.3210
+!LCD timer
+LCD_TIM_CTL=\$480!      TB0CTL
+LCD_TIM_CCTLn=\$484!    TB0CCTL1
+LCD_TIM_CCR0=\$492!     TB0CCR0
+LCD_TIM_CCRn=\$494!     TB0CCR1
+LCD_TIM_EX0=\$4A0!      TB0EX0
+
+
+!WATCHDOG timer
+WDT_TIM_CTL=\$380!      TA0CTL
+WDT_TIM_CCTL0=\$382!    TA0CCTL0
+WDT_TIM_CCR0=\$392!     TA0CCR0
+WDT_TIM_EX0=\$3A0!      TA0EX0
+WDT_TIM_0_Vec=\$FFF8!   TA0_0_Vec
+
+
+!IR_RC5
+RC5_=RC5_!
+IR_IN=\$201!  
+IR_OUT=\$203! 
+IR_DIR=\$205! 
+IR_REN=\$209! 
+IR_IES=\$219!
+IR_IE=\$21B!
+IR_IFG=\$21D!
+IR_Vec=\$FFD4!          P2 int
+RC5=4!                  P2.2
+!IR_RC5 timer
+RC5_TIM_CTL=\$3C0!       TA1CTL
+RC5_TIM_R=\$3D0!         TA1R
+RC5_TIM_EX0=\$3E0!       TA1EX0
+
+!Software I2C_Master
+I2CSM_IN=\$220!
+I2CSM_OUT=\$222!
+I2CSM_DIR=\$224!
+I2CSM_REN=\$226!
+SMSDA=4!                P3.2
+SMSCL=8!                P3.3
+SM_BUS=\$0C!    
+
+!Software I2C_Multi_Master
+I2CSMM_IN=\$220!
+I2CSMM_OUT=\$222!
+I2CSMM_DIR=\$224!
+I2CSMM_REN=\$226!
+SMMSDA=4!               P3.2
+SMMSCL=8!               P3.3
+SMM_BUS=\$0C!    
+
+!hardware I2C_Multi_Master
+I2CMM_IN=\$221!
+I2CMM_OUT=\$223!
+I2CMM_DIR=\$225!
+I2CMM_REN=\$227!
+I2CMM_SEL=\$22B!        SEL0
+I2CMM_Vec=\$FFDA!       UCB1
+MMSCL=8!                P4.3
+MMSDA=\$10!             P4.4
+MM_BUS=\$18!
+
+!hardware I2C_Master
+I2CM_IN=\$221!
+I2CM_OUT=\$223!
+I2CM_DIR=\$225!
+I2CM_REN=\$227!
+I2CM_SEL=\$22B!         SEL0
+I2CM_Vec=\$FFDA!        UCB1
+MSCL=8!                 P4.3
+MSDA=\$10!              P4.4
+M_BUS=\$18!
+
+!hardware I2C_Slave
+I2CS_IN=\$221!
+I2CS_OUT=\$223!
+I2CS_DIR=\$225!
+I2CS_REN=\$227!
+I2CS_SEL=\$22B!         SEL0
+I2CS_Vec=\$FFDA!        UCB1
+SSCL=8!                 P4.3
+SSDA=\$10!              P4.4
+S_BUS=\$18!
+
+
index 6bb03ca..5636198 100644 (file)
@@ -49,6 +49,10 @@ xdodoes=\$8000!         restore rDODOES: MOV #xdodoes,rDODOES
 xdocon=\$800E!          restore rDOCON: MOV #xdocon,rDOCON
 xdovar=\$8020!          restore rDOVAR: MOV #xdocon,rDOVAR  
 xdocol=\$802A!          restore rDOCOL: MOV #xdocol,rDOCOL      only for DTC model = 1
+DODOES=\$1284!          CALL rDODOES
+DOCON=\$1285!           CALL rDOCON
+DOVAR=\$1286!           CALL rDOVAR
+
 ! to find DTC value, download \MSP430-FORTH\FastForthSpecs.4th
 ! if DTC = 1, restore rDOCOL as this : MOV #xdocol,rDOCOL
 ! if DTC = 2, restore rDOCOL as this : MOV #EXIT,rDOCOL
@@ -222,7 +226,7 @@ LAST_THREAD=\$21B8!
 LAST_CFA=\$21BA!
 LAST_PSP=\$21BC!
 
-!STATE=\$21BE!           Interpreter state
+STATEADR=\$21BE!           Interpreter state
 
 SOURCE_LEN=\$21C0!      len of input stream
 SOURCE_ORG=\$21C2!      adr of input stream
@@ -233,21 +237,10 @@ LASTVOC=\$21C8!         keep VOC-LINK
 CONTEXT=\$21CA!         CONTEXT dictionnary space (8 CELLS)
 CURRENT=\$21DA!         CURRENT dictionnary ptr
 
-!BASE=\$21DC!           numeric base, must be defined before first reset !
+BASEADR=\$21DC!           numeric base, must be defined before first reset !
 LINE=\$21DE!            line in interpretation, activated with NOECHO, desactivated with ECHO
 ! ---------------------------------------
-!21E0! 16 RAM bytes free conditionnaly
-! ---------------------------------------
-!SAV_CURRENT=\$21E0!    preserve CURRENT when create assembler words
-!ASMBW1=\$21E2          assembler backward reference 1
-!ASMBW2=\$21E4          assembler backward reference 2
-!ASMBW3=\$21E6          assembler backward reference 3
-!ASMFW1=\$21E8          assembler forward reference 1
-!ASMFW2=\$21EA          assembler forward reference 2
-!ASMFW3=\$21EC          assembler forward reference 3
-!RPT_WORD=\$21EE!    
-! ---------------------------------------
-!21EE! 12RAM bytes free
+!21E0! 28 RAM bytes free conditionnaly
 ! ---------------------------------------
 
 ! ---------------------------------------
index d18ac47..c74a34a 100644 (file)
@@ -41,6 +41,10 @@ xdodoes=\$C400!         restore rDODOES: MOV #xdodoes,rDODOES
 xdocon=\$C40E!          restore rDOCON: MOV #xdocon,rDOCON
 xdovar=\$C420!          restore rDOVAR: MOV #xdocon,rDOVAR  
 xdocol=\$C42A!          restore rDOCOL: MOV #xdocol,rDOCOL      only for DTC model = 1
+DODOES=\$1284!          CALL rDODOES
+DOCON=\$1285!           CALL rDOCON
+DOVAR=\$1286!           CALL rDOVAR
+
 ! to find DTC value, download \MSP430-FORTH\FastForthSpecs.4th
 ! if DTC = 1, restore rDOCOL as this : MOV #xdocol,rDOCOL
 ! if DTC = 2, restore rDOCOL as this : MOV #EXIT,rDOCOL
@@ -207,7 +211,7 @@ LAST_THREAD=\$21B8!
 LAST_CFA=\$21BA!
 LAST_PSP=\$21BC!
 
-!STATE=\$21BE!           Interpreter state
+STATEADR=\$21BE!           Interpreter state
 
 SOURCE_LEN=\$21C0!      len of input stream
 SOURCE_ORG=\$21C2!      adr of input stream
@@ -218,21 +222,10 @@ LASTVOC=\$21C8!         keep VOC-LINK
 CONTEXT=\$21CA!         CONTEXT dictionnary space (8 CELLS)
 CURRENT=\$21DA!         CURRENT dictionnary ptr
 
-!BASE=\$21DC!           numeric base, must be defined before first reset !
+BASEADR=\$21DC!           numeric base, must be defined before first reset !
 LINE=\$21DE!            line in interpretation, activated with NOECHO, desactivated with ECHO
 ! ---------------------------------------
-!21E0! 16 RAM bytes free conditionnaly
-! ---------------------------------------
-!SAV_CURRENT=\$21E0!    preserve CURRENT when create assembler words
-!ASMBW1=\$21E2          assembler backward reference 1
-!ASMBW2=\$21E4          assembler backward reference 2
-!ASMBW3=\$21E6          assembler backward reference 3
-!ASMFW1=\$21E8          assembler forward reference 1
-!ASMFW2=\$21EA          assembler forward reference 2
-!ASMFW3=\$21EC          assembler forward reference 3
-!RPT_WORD=\$21EE!    
-! ---------------------------------------
-!21EE! 12RAM bytes free
+!21E0! 28 RAM bytes free 
 ! ---------------------------------------
 
 ! ---------------------------------------
diff --git a/inc/MSP430FR2476.inc b/inc/MSP430FR2476.inc
new file mode 100644 (file)
index 0000000..5193452
--- /dev/null
@@ -0,0 +1,387 @@
+; MSP430fr2433.inc
+; MSP430fr2433 minimal declarations for Fast FORTH usage
+DEVICE = "MSP430FR2476"
+FR2_FAMILY
+
+; ----------------------------------------------
+; MSP430FR2476 MEMORY MAP
+; ----------------------------------------------
+; 0000-0005 = reserved
+; 0006-001F = TinyRAM
+; 0020-0FFF = peripherals (4 KB)
+; 1000-17FF = ROM bootstrap loader BSL1 (2k)
+; 1800-19FF = info B (FRAM 512 B)
+; 1A00-1A7F = TLV device descriptor info (FRAM 128 B)
+; 1A80-1FFF = unused
+; 2000-3FFF = RAM (8 KB)
+; 4000-7FFF = unused
+; 8000-17FFF = code memory (FRAM 64 kB)
+; FF80-FFFF = interrupt vectors (FRAM 128 B)
+; C0000-C3FFF = CapTivate lib
+; FFC00-FFFFF = BSL2 (2k)
+; ----------------------------------------------
+PAGESIZE        .equ 512         ; MPU unit
+; ----------------------------------------------
+; BSL                           
+; ----------------------------------------------
+BSL1            .equ 01000h     ; to 17FFh
+CapTivateLib    .equ 0C0000h    ; to 0C3FFFh
+BSL2            .equ 0FFC00h    ; to 0FFFFFh
+; ----------------------------------------------
+; FRAM                          ; INFO B, TLV
+; ----------------------------------------------
+TinyRAM         .equ 00006h     ; to 0001Fh
+INFO_ORG        .equ 01800h     ; to 019FFh
+INFO_LEN        .equ 00200h
+TLV_ORG         .equ 01A00h      ; Device Descriptor Info (Tag-Lenght-Value)
+TLV_LEN         .equ 00080h      ;
+; ----------------------------------------------
+; RAM
+; ----------------------------------------------
+RAM_ORG         .equ 02000h     ; to 3FFFh
+RAM_LEN         .equ 02000h     ; 
+; ----------------------------------------------
+; FRAM
+; ----------------------------------------------
+MAIN_ORG        .equ 08000h      ; Code space start
+SIGNATURES      .equ 0FF80h      ; JTAG/BSL signatures
+JTAG_SIG1       .equ 0FF80h      ; if 0 (electronic fuse=0) enable JTAG/SBW ; reset by wipe and by S1+<reset>
+JTAG_SIG2       .equ 0FF82h      ; if JTAG_SIG <> |0xFFFFFFFF, 0x00000000|, SBW and JTAG are locked
+BSL_SIG1        .equ 0FF84h      ;
+BSL_SIG2        .equ 0FF86h      ;
+JTAG_PASSWORD   .equ 0FF88h      ; 256 bits
+BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
+VECT_ORG        .equ 0FF8Ch      ; FFDA-FFFF
+VECT_LEN        .equ 38h
+; ----------------------------------------------
+
+; ----------------------------------------------
+; Interrupt Vectors and signatures - MSP430FR243x
+; ----------------------------------------------
+
+;    .org    SIGNATURES
+;;Start of JTAG and BSL signatures
+;        .word   0FFFFh      ; JTAG signature 1
+;        .word   0FFFFh      ; JTAG signature 2
+;        .word   0FFFFh      ; BSL signature 1, 5555h to disable BSL
+;        .word   0FFFFh      ; BSL signature 2
+
+;   .org    INTVECT         ; FFDA-FFFF 27 vectors + reset
+;
+;           .word  reset        ; FFC8h - CapTivate       
+;           .word  reset        ; FFCAh - eCOMP0       
+;           .word  reset        ; FFCCh - P6       
+;           .word  reset        ; FFCEh - P5       
+;           .word  reset        ; FFD0h - P4       
+;           .word  reset        ; FFD2h - P3       
+;           .word  reset        ; FFD4h - P2       
+;           .word  reset        ; FFD6h - P1       
+;           .word  reset        ; FFD8h - ADC10    
+;           .word  reset        ; FFDAh - eUSCI_B1 
+;           .word  reset        ; FFDCh - eUSCI_B0 
+;           .word  reset        ; FFDEh - eUSCI_A1 
+;           .word  reset        ; FFE0h - eUSCI_A0 
+;           .word  reset        ; FFE2h - WDT      
+;           .word  reset        ; FFE4h - RTC      
+;           .word  reset        ; FFE6h - TB0_x    
+;           .word  reset        ; FFE8h - TB0_0    
+;           .word  reset        ; FFEAh - TA3_x    
+;           .word  reset        ; FFECh - TA3_0    
+;           .word  reset        ; FFEEh - TA2_x    
+;           .word  reset        ; FFF0h - TA2_0    
+;           .word  reset        ; FFF2h - TA1_x    
+;           .word  reset        ; FFF4h - TA1_0    
+;           .word  reset        ; FFF6h - TA0_x    
+;           .word  reset        ; FFF8h - TA0_0    
+;           .word  reset        ; FFFAh - UserNMI  
+;           .word  reset        ; FFFCh - SysNMI   
+;           .word  reset        ; FFFEh - Reset    
+
+; ----------------------------------------------------------------------
+; MSP430FR2476 Peripheral File Map
+; ----------------------------------------------------------------------
+SFR_SFR         .equ 0100h           ; Special function
+PMM_SFR         .equ 0120h           ; PMM
+SYS_SFR         .equ 0140h           ; SYS
+CS_SFR          .equ 0180h           ; Clock System
+FRAM_SFR        .equ 01A0h           ; FRAM control
+CRC16_SFR       .equ 01C0h
+WDT_A_SFR       .equ 01CCh           ; Watchdog
+PA_SFR          .equ 0200h           ; PORT1/2
+PB_SFR          .equ 0220h           ; PORT3/4
+PC_SFR          .equ 0240h           ; PORT5/6
+RTC_SFR         .equ 0300h
+TA0_SFR         .equ 0380h
+TA1_SFR         .equ 03C0h
+TA2_SFR         .equ 0400h
+TA3_SFR         .equ 0440h
+TB0_SFR         .equ 0480h
+MPY_SFR         .equ 04C0h
+eUSCI_A0_SFR    .equ 0500h           ; eUSCI_A0
+eUSCI_A1_SFR    .equ 0520h           ; eUSCI_A1
+eUSCI_B0_SFR    .equ 0540h           ; eUSCI_B0
+eUSCI_B1_SFR    .equ 0580h           ; eUSCI_B1
+BACK_MEM_SFR    .equ 0660h
+ADC10_B_SFR     .equ 0700h
+eCOMP_SFR       .equ 08F0h          
+
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : LOCK PMM_LOCKLPM5
+; ----------------------------------------------------------------------
+PMMCTL0     .equ PMM_SFR
+PMMSWBOR    .equ 4
+
+PM5CTL0     .equ PMM_SFR + 10h    ; Power mode 5 control register 0
+LOCKLPM5    .equ 1               ; bit position
+
+; ----------------------------------------------------------------------
+; POWER ON RESET SYS config
+; ----------------------------------------------------------------------
+SYSCTL      .equ SYS_SFR + 00h  ;   System control                      
+SYSBSLC     .equ SYS_SFR + 02h  ;   Bootstrap loader configuration area 
+SYSJMBC     .equ SYS_SFR + 06h  ;   JTAG mailbox control                
+SYSJMBI0    .equ SYS_SFR + 08h  ;   JTAG mailbox input 0                
+SYSJMBI1    .equ SYS_SFR + 0Ah  ;   JTAG mailbox input 1                
+SYSJMBO0    .equ SYS_SFR + 0Ch  ;   JTAG mailbox output 0               
+SYSJMBO1    .equ SYS_SFR + 0Eh  ;   JTAG mailbox output 1               
+SYSBERRIV   .equ SYS_SFR + 18h  ;   Bus Error vector generator          
+SYSUNIV     .equ SYS_SFR + 1Ah  ;   User NMI vector generator           
+SYSSNIV     .equ SYS_SFR + 1Ch  ;   System NMI vector generator         
+SYSRSTIV    .equ SYS_SFR + 1Eh  ;   Reset vector generator              
+SYSCFG0     .equ SYS_SFR + 20h  ;   System configuration 0              
+SYSCFG1     .equ SYS_SFR + 22h  ;   System configuration 1              
+SYSCFG2     .equ SYS_SFR + 24h  ;   System configuration 2        
+      
+; SYS Control Bits
+; ...
+
+
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : WATCHDOG TIMER A
+; ----------------------------------------------------------------------
+
+WDTCTL      .equ WDT_A_SFR + 00h    ; Watchdog Timer Control */
+
+; WDTCTL Control Bits
+WDTPW       .equ 5A00h
+WDTHOLD     .equ 0080h  ; WDT - Timer hold
+WDTCNTCL    .equ 0008h  ; WDT timer counter clear
+
+
+; ----------------------------------------------------------------------
+; FRAM config
+; ----------------------------------------------------------------------
+
+FRCTL0      .equ FRAM_SFR + 00h   ; FRAM Controller Control 0
+FRCTL0_H    .equ FRAM_SFR + 01h   ; FRAM Controller Control 0 high byte
+
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : CLOCK SYSTEM
+; ----------------------------------------------------------------------
+
+CSCTL0      .equ CS_SFR + 00h   ; Clock System Control Register 0
+CSCTL1      .equ CS_SFR + 02h   ; Clock System Control Register 1
+CSCTL2      .equ CS_SFR + 04h   ; Clock System Control Register 2
+CSCTL3      .equ CS_SFR + 06h   ; Clock System Control Register 3
+CSCTL4      .equ CS_SFR + 08h   ; Clock System Control Register 4
+CSCTL5      .equ CS_SFR + 0Ah   ; Clock System Control Register 5
+CSCTL6      .equ CS_SFR + 0Ch   ; Clock System Control Register 6
+CSCTL7      .equ CS_SFR + 0Eh   ; Clock System Control Register 7
+CSCTL8      .equ CS_SFR + 10h   ; Clock System Control Register 8
+
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : PORT1/2
+; ----------------------------------------------------------------------
+
+PAIN        .equ PA_SFR + 00h    ; Port A Input
+PAOUT       .equ PA_SFR + 02h    ; Port A Output
+PADIR       .equ PA_SFR + 04h    ; Port A Direction
+PAREN       .equ PA_SFR + 06h    ; Port A Resistor Enable
+PASEL0      .equ PA_SFR + 0Ah    ; Port A Selection 0
+PASEL1      .equ PA_SFR + 0Ch    ; Port A Selection 1
+PASELC      .equ PA_SFR + 16h    ; Port A Complement Selection
+PAIES       .equ PA_SFR + 18h    ; Port A Interrupt Edge Select
+PAIE        .equ PA_SFR + 1Ah    ; Port A Interrupt Enable
+PAIFG       .equ PA_SFR + 1Ch    ; Port A Interrupt Flag
+
+P1IN        .equ PA_SFR + 00h    ; Port 1 Input
+P1OUT       .equ PA_SFR + 02h    ; Port 1 Output
+P1DIR       .equ PA_SFR + 04h    ; Port 1 Direction
+P1REN       .equ PA_SFR + 06h    ; Port 1 Resistor Enable
+P1SEL0      .equ PA_SFR + 0Ah    ; Port 1 Selection 0
+P1SEL1      .equ PA_SFR + 0Ch    ; Port 1 Selection 1
+P1IV        .equ PA_SFR + 0Eh    ; Port 1 Interrupt Vector word 
+P1IES       .equ PA_SFR + 18h    ; Port 1 Interrupt Edge Select
+P1IE        .equ PA_SFR + 1Ah    ; Port 1 Interrupt Enable
+P1IFG       .equ PA_SFR + 1Ch    ; Port 1 Interrupt Flag
+
+P2IN        .equ PA_SFR + 01h    ; Port 2 Input
+P2OUT       .equ PA_SFR + 03h    ; Port 2 Output
+P2DIR       .equ PA_SFR + 05h    ; Port 2 Direction
+P2REN       .equ PA_SFR + 07h    ; Port 2 Resistor Enable
+P2SEL0      .equ PA_SFR + 0Bh    ; Port 2 Selection 0
+P2SEL1      .equ PA_SFR + 0Dh    ; Port 2 Selection 1
+P2IES       .equ PA_SFR + 19h    ; Port 2 Interrupt Edge Select
+P2IE        .equ PA_SFR + 1Bh    ; Port 2 Interrupt Enable
+P2IFG       .equ PA_SFR + 1Dh    ; Port 2 Interrupt Flag
+P2IV        .equ PA_SFR + 1Eh    ; Port 2 Interrupt Vector word 
+
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : PORT3/4
+; ----------------------------------------------------------------------
+
+PBIN        .equ PB_SFR + 00h    ; Port B Input
+PBOUT       .equ PB_SFR + 02h    ; Port B Output 1/0 or pullup/pulldown resistor
+PBDIR       .equ PB_SFR + 04h    ; Port B Direction
+PBREN       .equ PB_SFR + 06h    ; Port B Resistor Enable
+PBSEL0      .equ PB_SFR + 0Ah    ; Port B Selection 0
+PBSEL1      .equ PB_SFR + 0Ch    ; Port B Selection 1
+PBSELC      .equ PB_SFR + 16h    ; Port B Complement Selection
+PBIES       .equ PB_SFR + 18h    ; Port B Interrupt Edge Select
+PBIE        .equ PB_SFR + 1Ah    ; Port B Interrupt Enable
+PBIFG       .equ PB_SFR + 1Ch    ; Port B Interrupt Flag
+
+P3IN        .equ PB_SFR + 00h    ; Port 3 Input */
+P3OUT       .equ PB_SFR + 02h    ; Port 3 Output
+P3DIR       .equ PB_SFR + 04h    ; Port 3 Direction
+P3REN       .equ PB_SFR + 06h    ; Port 3 Resistor Enable
+P3SEL0      .equ PB_SFR + 0Ah    ; Port 3 Selection 0
+P3SEL1      .equ PB_SFR + 0Ch    ; Port 3 Selection 1
+P3SELC      .equ PB_SFR + 16h    ; Port 3 Complement Selection
+P3IES       .equ PB_SFR + 18h    ; Port 3 Interrupt Edge Select
+P3IE        .equ PB_SFR + 1Ah    ; Port 3 Interrupt Enable
+P3IFG       .equ PB_SFR + 1Ch    ; Port 3 Interrupt Flag
+P3IV        .equ PB_SFR + 0Eh    ; Port 3 Interrupt Vector word 
+
+P4IN        .equ PB_SFR + 01h    ; Port 4 Input */
+P4OUT       .equ PB_SFR + 03h    ; Port 4 Output
+P4DIR       .equ PB_SFR + 05h    ; Port 4 Direction
+P4REN       .equ PB_SFR + 07h    ; Port 4 Resistor Enable
+P4SEL0      .equ PB_SFR + 0Bh    ; Port 4 Selection 0
+P4SEL1      .equ PB_SFR + 0Dh    ; Port 4 Selection 1
+P4SELC      .equ PB_SFR + 17h    ; Port 4 Complement Selection
+P4IES       .equ PB_SFR + 19h    ; Port 4 Interrupt Edge Select
+P4IE        .equ PB_SFR + 1Bh    ; Port 4 Interrupt Enable
+P4IFG       .equ PB_SFR + 1Dh    ; Port 4 Interrupt Flag
+P4IV        .equ PB_SFR + 1Eh    ; Port 4 Interrupt Vector word 
+
+; ----------------------------------------------------------------------
+; POWER ON RESET AND INITIALIZATION : PORT5/6
+; ----------------------------------------------------------------------
+
+PCIN        .equ PC_SFR + 00h    ; Port C Input
+PCOUT       .equ PC_SFR + 02h    ; Port C Output
+PCDIR       .equ PC_SFR + 04h    ; Port C Direction
+PCREN       .equ PC_SFR + 06h    ; Port C Resistor Enable
+PCSEL0      .equ PC_SFR + 0Ah    ; Port C Selection 0
+PCSEL1      .equ PC_SFR + 0Ch    ; Port C Selection 1
+PCSELC      .equ PC_SFR + 16h    ; Port C Complement Selection
+PCIES       .equ PC_SFR + 18h    ; Port C Interrupt Edge Select
+PCIE        .equ PC_SFR + 1Ah    ; Port C Interrupt Enable
+PCIFG       .equ PC_SFR + 1Ch    ; Port C Interrupt Flag
+
+P5IN        .equ PC_SFR + 00h    ; Port 5 Input
+P5OUT       .equ PC_SFR + 02h    ; Port 5 Output
+P5DIR       .equ PC_SFR + 04h    ; Port 5 Direction
+P5REN       .equ PC_SFR + 06h    ; Port 5 Resistor Enable
+P5SEL0      .equ PC_SFR + 0Ah    ; Port 5 Selection 0
+P5SEL1      .equ PC_SFR + 0Ch    ; Port 5 Selection 1
+P5IV        .equ PC_SFR + 0Eh    ; Port 5 Interrupt Vector word 
+P5SELC      .set PC_SFR + 16h    ; Port 5 Complement Selection
+P5IES       .equ PC_SFR + 18h    ; Port 5 Interrupt Edge Select
+P5IE        .equ PC_SFR + 1Ah    ; Port 5 Interrupt Enable
+P5IFG       .equ PC_SFR + 1Ch    ; Port 5 Interrupt Flag
+
+P6IN        .equ PC_SFR + 01h    ; Port 6 Input
+P6OUT       .equ PC_SFR + 03h    ; Port 6 Output
+P6DIR       .equ PC_SFR + 05h    ; Port 6 Direction
+P6REN       .equ PC_SFR + 07h    ; Port 6 Resistor Enable
+P6SEL0      .equ PC_SFR + 0Bh    ; Port 6 Selection 0
+P6SEL1      .equ PC_SFR + 0Dh    ; Port 6 Selection 1
+P6SELC      .set PC_SFR + 17h    ; Port 6 Complement Selection
+P6IES       .equ PC_SFR + 19h    ; Port 6 Interrupt Edge Select
+P6IE        .equ PC_SFR + 1Bh    ; Port 6 Interrupt Enable
+P6IFG       .equ PC_SFR + 1Dh    ; Port 6 Interrupt Flag
+P6IV        .equ PC_SFR + 1Eh    ; Port 6 Interrupt Vector word 
+
+; ----------------------------------------------------------------------
+RTC
+; ----------------------------------------------------------------------
+RTCCTL      .equ RTC_SFR + 00h  ; Real-Time Clock Control 
+RTCIV       .equ RTC_SFR + 04h  ; Real-Time Clock Interrupt Vector 
+RTCMOD      .equ RTC_SFR + 08h  ; Real-Timer Clock Modulo 
+RTCCNT      .equ RTC_SFR + 0Ch  ; Real-Time Clock Counter 
+
+; ----------------------------------------------------------------------
+MPY_32
+; ----------------------------------------------------------------------
+
+MPY       .equ MPY_SFR + 00h    ; Multiply16 Unsigned/Operand 1 */
+MPYS      .equ MPY_SFR + 02h    ; Multiply16 signed/Operand 1
+MAC       .equ MPY_SFR + 04h    ; MultiplyAccumulate16 Unsigned/Operand 1 */
+MACS      .equ MPY_SFR + 06h    ; MultiplyAccumulate16 signed/Operand 1
+OP2       .equ MPY_SFR + 08h    ; Operand2_16 */
+RESLO     .equ MPY_SFR + 0Ah    ; 16x16-bit result low - least significant word */
+RESHI     .equ MPY_SFR + 0Ch    ; 16x16-bit result high */
+SUMEXT    .equ MPY_SFR + 0Eh    ; 16x16-bit sum extension register
+MPY32L    .equ MPY_SFR + 10h    ; Multiply32 Unsigned/Operand 1
+MPY32H    .equ MPY_SFR + 12h    ; Multiply32 Unsigned/Operand 1
+MPYS32L   .equ MPY_SFR + 14h    ; Multiply32 signed/Operand 1
+MPYS32H   .equ MPY_SFR + 16h    ; Multiply32 signed/Operand 1
+MAC32L    .equ MPY_SFR + 18h    ; MultiplyAccumulate32 Unsigned/Operand 1
+MAC32H    .equ MPY_SFR + 1Ah    ; MultiplyAccumulate32 Unsigned/Operand 1
+MACS32L   .equ MPY_SFR + 1Ch    ; MultiplyAccumulate32 signed/Operand 1
+MACS32H   .equ MPY_SFR + 1Eh    ; MultiplyAccumulate32 signed/Operand 1
+OP2L      .equ MPY_SFR + 20h    ; Multiply32 Operand 2
+OP2H      .equ MPY_SFR + 22h    ; Multiply32 Operand 2
+RES0      .equ MPY_SFR + 24h    ; 32x32-bit result 0 - least significant word */
+RES1      .equ MPY_SFR + 26h    ; 32x32-bit result 1 */
+RES2      .equ MPY_SFR + 28h    ; 32x32-bit result 2 */
+RES3      .equ MPY_SFR + 2Ah    ; 32x32-bit result 3 */
+MPY32CTL0 .equ MPY_SFR + 2Ch    ; MPY32 control register 0
+
+
+
+
+UCSWRST         .equ 1  ; eUSCI Software Reset
+UCTXIE          .equ 2  ; eUSCI Transmit Interrupt Enable
+UCRXIE          .equ 1  ; eUSCI Receive Interrupt Enable
+UCTXIFG         .equ 2  ; eUSCI Transmit Interrupt Flag
+UCRXIFG         .equ 1  ; eUSCI Receive Interrupt Flag
+
+
+
+; ----------------------------------------------------------------------
+eUSCI_A0
+; ----------------------------------------------------------------------
+
+    .IFDEF UCA0_TERM
+TERM_CTLW0       .equ eUSCI_A0_SFR + 00h    ; eUSCI_A0 Control Word Register 0
+TERM_BRW         .equ eUSCI_A0_SFR + 06h    ; eUSCI_A0 Baud Word Rate 0
+TERM_MCTLW       .equ eUSCI_A0_SFR + 08h    ; eUSCI_A0 Modulation Control
+TERM_STATW       .equ eUSCI_A0_SFR + 0Ah    ; eUSCI_A0 status Word Register
+TERM_RXBUF       .equ eUSCI_A0_SFR + 0Ch    ; eUSCI_A0 Receive Buffer
+TERM_TXBUF       .equ eUSCI_A0_SFR + 0Eh    ; eUSCI_A0 Transmit Buffer
+TERM_IE          .equ eUSCI_A0_SFR + 1Ah    ; eUSCI_A0 Interrupt Enable Register
+TERM_IFG         .equ eUSCI_A0_SFR + 1Ch    ; eUSCI_A0 Interrupt Flags Register
+TERM_VEC         .equ 0FFE0h      ;  interrupt vector for eUSCI_A0
+    .ENDIF ;UCA0_TERM
+
+
+; ----------------------------------------------------------------------
+eUSCI_A1
+; ----------------------------------------------------------------------
+    .IFDEF UCA1_SD
+SD_CTLW0       .equ eUSCI_A1_SFR + 00h    ; USCI_A1 Control Word Register 0
+SD_BRW         .equ eUSCI_A1_SFR + 06h    ; USCI_A1 Baud Word Rate 0
+SD_RXBUF       .equ eUSCI_A1_SFR + 0Ch    ; USCI_A1 Receive Buffer 8
+SD_TXBUF       .equ eUSCI_A1_SFR + 0Eh    ; USCI_A1 Transmit Buffer 8
+SD_IFG         .equ eUSCI_A1_SFR + 1Ch    ; USCI_A1 Interrupt Flags Register
+    .ENDIF ;UCA1_SD
+
+; ----------------------------------------------------------------------
+eUSCI_B0
+; ----------------------------------------------------------------------
+
+
+
diff --git a/inc/MSP430FR2476.pat b/inc/MSP430FR2476.pat
new file mode 100644 (file)
index 0000000..0307edd
--- /dev/null
@@ -0,0 +1,766 @@
+!MSP430FR2476.pat
+
+! ----------------------------------------------
+! MSP430FR2476 MEMORY MAP
+! ----------------------------------------------
+! 0000-0005 = reserved
+! 0006-001F = TinyRAM
+! 0020-0FFF = peripherals (4 KB)
+! 1000-17FF = ROM bootstrap loader BSL1 (2k)
+! 1800-19FF = info B (FRAM 512 B)
+! 1A00-1A7F = TLV device descriptor info (FRAM 128 B)
+! 1A80-1FFF = unused
+! 2000-3FFF = RAM (8 KB)
+! 4000-7FFF = unused
+! 8000-17FFF = code memory (FRAM 64 kB)
+! FF80-FFFF = interrupt vectors (FRAM 128 B)
+! C0000-C3FFF = CapTivate lib
+! FFC00-FFFFF = BSL2 (2k)
+! ----------------------------------------------
+!PAGESIZE        .equ 512         ; MPU unit
+! ----------------------------------------------
+! BSL                           
+! ----------------------------------------------
+BSL1=\$1000!    to $17FF (2k)
+BSL2=\$FFC00!   to $FFFFFF (1k)
+! ----------------------------------------------
+! FRAM                          ; INFO B, TLV
+! ----------------------------------------------
+INFO_ORG =\$1800!   to $19FF (512b)
+INFO_LEN=\$0200!
+TLV_ORG=\$1A00!     to $1A31 Device Descriptor Info (Tag-Lenght-Value)
+TLV_LEN=\$0080!
+DEVICEID=\$1A04!
+! ----------------------------------------------
+! RAM
+! ----------------------------------------------
+TinyRAM_ORG=\$06!
+TinyRAM_LEN=\$1A!
+RAM_ORG=\$2000!
+RAM_LEN=\$2000!
+! ----------------------------------------------
+! FRAM
+! ----------------------------------------------
+MAIN_ORG=\$8000!        Code space start
+xdodoes=\$8000!         restore rDODOES: MOV #xdodoes,rDODOES
+xdocon=\$800E!          restore rDOCON: MOV #xdocon,rDOCON
+xdovar=\$8020!          restore rDOVAR: MOV #xdocon,rDOVAR  
+xdocol=\$802A!          restore rDOCOL: MOV #xdocol,rDOCOL      only for DTC model = 1
+DODOES=\$1284!          CALL rDODOES
+DOCON=\$1285!           CALL rDOCON
+DOVAR=\$1286!           CALL rDOVAR
+
+! to find DTC value, download \MSP430-FORTH\FastForthSpecs.4th
+! if DTC = 1, restore rDOCOL as this : MOV #xdocol,rDOCOL
+! if DTC = 2, restore rDOCOL as this : MOV #EXIT,rDOCOL
+! if DTC = 3, nothing to do, R7 is free for use.
+! ----------------------------------------------
+! Interrupt Vectors and signatures - MSP430FR2476
+! ----------------------------------------------
+FRAM_FULL=\$FF40!       64 bytes are sufficient considering what can be compiled in one line and WORD use.
+SIGNATURES=\$FF80!      JTAG/BSL signatures
+JTAG_SIG1=\$FF80!       if 0 (electronic fuse=0) enable JTAG/SBW ; reset by wipe and by S1+<reset>
+JTAG_SIG2=\$FF82!       if JTAG_SIG <> |\$FFFFFFFF, \$00000000|, SBW and JTAG are locked
+BSL_SIG1=\$FF84!        
+BSL_SIG2=\$FF86!        
+JTAG_PASSWORD=\$FF88!   256 bits
+BSL_PASSWORD=\$FFE0!    256 bits
+VECT_ORG=\$FFDA!        FFDA-FFFF
+VECT_LEN=\$38!
+! ----------------------------------------------
+
+
+;   .org    INTVECT         ; FFDA-FFFF 26 vectors + reset
+;
+;           .word  reset        ; FFCAh - eCOMP0       
+;           .word  reset        ; FFCCh - P6       
+;           .word  reset        ; FFCEh - P5       
+;           .word  reset        ; FFD0h - P4       
+;           .word  reset        ; FFD2h - P3       
+;           .word  reset        ; FFD4h - P2       
+;           .word  reset        ; FFD6h - P1       
+;           .word  reset        ; FFD8h - ADC10    
+;           .word  reset        ; FFDAh - eUSCI_B1 
+;           .word  reset        ; FFDCh - eUSCI_B0 
+;           .word  reset        ; FFDEh - eUSCI_A1 
+;           .word  reset        ; FFE0h - eUSCI_A0 
+;           .word  reset        ; FFE2h - WDT      
+;           .word  reset        ; FFE4h - RTC      
+;           .word  reset        ; FFE6h - TB0_x    
+;           .word  reset        ; FFE8h - TB0_0    
+;           .word  reset        ; FFEAh - TA3_x    
+;           .word  reset        ; FFECh - TA3_0    
+;           .word  reset        ; FFEEh - TA2_x    
+;           .word  reset        ; FFF0h - TA2_0    
+;           .word  reset        ; FFF2h - TA1_x    
+;           .word  reset        ; FFF4h - TA1_0    
+;           .word  reset        ; FFF6h - TA0_x    
+;           .word  reset        ; FFF8h - TA0_0    
+;           .word  reset        ; FFFAh - UserNMI  
+;           .word  reset        ; FFFCh - SysNMI  
+
+    
+eCOMP0_Vec=\$FFCA!
+P6_Vec=\$FFCC!
+P5_Vec=\$FFCE!
+P4_Vec=\$FFD0!
+P3_Vec=\$FFD2!
+P2_Vec=\$FFD4!
+P1_Vec=\$FFD6!
+ADC10_B_Vec=\$FFD8!
+eUSCI_B1_Vec=\$FFDA!
+eUSCI_B0_Vec=\$FFDC!
+eUSCI_A1_Vec=\$FFDE!
+eUSCI_A0_Vec=\$FFE0!
+WDT_Vec=\$FFE2!
+RTC_Vec=\$FFE4!
+TB0_x_Vec=\$FFE6!
+TB0_0_Vec=\$FFE8!
+TA3_x_Vec=\$FFEA!
+TA3_0_Vec=\$FFEC!
+TA2_x_Vec=\$FFEE!
+TA2_0_Vec=\$FFF0!
+TA1_x_Vec=\$FFF2!
+TA1_0_Vec=\$FFF4!
+TA0_x_Vec=\$FFF6!
+TA0_0_Vec=\$FFF8!
+U_NMI_Vec=\$FFFA!
+S_NMI_Vec=\$FFFC!
+RST_Vec=\$FFFE!
+
+
+LPM4=\$F8! SR(LPM4+GIE)
+LPM3=\$D8! SR(LPM3+GIE)
+LPM2=\$98! SR(LPM2+GIE)
+LPM1=\$58! SR(LPM1+GIE)
+LPM0=\$18! SR(LPM0+GIE)
+
+
+! ============================================
+! SR bits :
+! ============================================
+\#C=\#1!        = SR(0) Carry flag
+\#Z=\#2!        = SR(1) Zero flag
+\#N=\#4!        = SR(2) Negative flag
+\#GIE=\#8!      = SR(3) Enable Int
+\#CPUOFF=\#\$10!= SR(4) CPUOFF    
+\#OSCOFF=\#\$20!= SR(5) OSCOFF
+\#SCG0=\#\$40!  = SR(6) SCG0     
+\#SCG1=\#\$80!  = SR(7) SCG1
+\#V=\#\$100!    = SR(8) oVerflow flag
+\#UF9=\#\$200!  = SR(9) User Flag 1 used by ?NUMBER --> INTERPRET --> LITERAL to process double numbers, else free for use.  
+\#UF10=\#\$400! = SR(10) User Flag 2  
+\#UF11=\#\$800! = SR(11) User Flag 3  
+
+! ============================================
+! PORTx, Reg  bits :
+! ============================================
+BIT0=1!
+BIT1=2!
+BIT2=4!
+BIT3=8!
+BIT4=\$10!
+BIT5=\$20!
+BIT6=\$40!
+BIT7=\$80!
+BIT8=\$100!
+BIT9=\$200!
+BIT10=\$400!
+BIT11=\$800!
+BIT12=\$1000!
+BIT13=\$2000!
+BIT14=\$4000!
+BIT15=\$8000!
+
+! ============================================
+! symbolic codes :
+! ============================================
+RET=MOV \@R1+,R0!   \ MOV @RSP+,PC
+NOP=MOV \#0,R3!     \                one word one cycle
+NOP2=\$3C00 ,!      \ compile JMP 0  one word two cycles
+NOP3=MOV R0,R0!     \ MOV PC,PC      one word three cycles
+NEXT=MOV \@R13+,R0! \ MOV @IP+,PC   
+SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
+
+
+! ===========================================================
+! MSP430FR2xxx and FR4xxx DEVICES HAVE SPECIFIC RAM ADDRESSES
+! ===========================================================
+
+
+! You can check the addresses below by comparing their values in DTCforthMSP430FRxxxx.lst
+! those addresses are usable with the symbolic assembler
+
+! ============================================
+! FastForth INFO(DCBA) memory map (256 bytes):
+! ============================================
+
+INI_THREAD=\$1800!      .word THREADS
+TERMBRW_RST=\$1802!     .word TERMBRW_RST
+TERMMCTLW_RST=\$1804!   .word TERMMCTLW_RST
+FREQ_KHZ=\$1806!        .word FREQUENCY
+
+SAVE_SYSRSTIV=\$1808!   to enable SYSRSTIV read
+LPM_MODE=\$180A!        LPM0+GIE is the default mode
+INIDP=\$180C!           define RST_STATE, init by wipe
+INIVOC=\$180E!          define RST_STATE, init by wipe
+VERSION=\$1810!
+KERNEL_ADDON=\$1812!
+RXON=\$1814!
+RXOFF=\$1816!
+ReadSectorWX=\$1818!    call with W = SectorLO  X = SectorHI
+WriteSectorWX=\$181A!   call with W = SectorLO  X = SectorHI
+
+! ============================================
+! FORTH RAM areas :
+! ============================================
+
+LSTACK_SIZE=\#16! words
+PSTACK_SIZE=\#48! words
+RSTACK_SIZE=\#48! words
+PAD_LEN=\#84! bytes
+TIB_LEN=\#84! bytes
+HOLD_SIZE=\#34! bytes
+
+! ============================================
+! FastForth RAM memory map (>= 1k):
+! ============================================
+
+
+LEAVEPTR=\$2000!    \ Leave-stack pointer, init by QUIT
+LSATCK=\$2000!      \ leave stack,      grow up
+PSTACK=\$2080!      \ parameter stack,  grow down
+RSTACK=\$20E0!      \ Return stack,     grow down
+
+PAD_I2CADR=\$20E0!  \ RX I2C address
+PAD_I2CCNT=\$20E2!  \ count max
+PAD_ORG=\$20E4!     \ user scratch pad buffer, 84 bytes, grow up
+
+TIB_I2CADR=\$2138!  \ TX I2C address 
+TIB_I2CCNT=\$213A!  \ count of bytes
+TIB_ORG=\$213C!     \ Terminal input buffer, 84 bytes, grow up
+
+HOLDS_ORG=\$2190!   \ a good address for HOLDS
+HOLD_BASE=\$21B2!   \ BASE HOLD area, grow down
+
+! ----------------------
+! NOT SAVED VARIABLES
+! ----------------------
+
+HP=\$21B2!              HOLD ptr
+CAPS=\$21B4!            CAPS ON/OFF flag, must be set to -1 before first reset !
+LAST_NFA=\$21B6!
+LAST_THREAD=\$21B8!
+LAST_CFA=\$21BA!
+LAST_PSP=\$21BC!
+
+STATEADR=\$21BE!           Interpreter state
+
+SOURCE_LEN=\$21C0!      len of input stream
+SOURCE_ORG=\$21C2!      adr of input stream
+TOIN=\$21C4!            >IN
+DP=\$21C6!              dictionary ptr
+
+LASTVOC=\$21C8!         keep VOC-LINK
+CONTEXT=\$21CA!         CONTEXT dictionnary space (8 CELLS)
+CURRENT=\$21DA!         CURRENT dictionnary ptr
+
+BASEADR=\$21DC!           numeric base, must be defined before first reset !
+LINE=\$21DE!            line in interpretation, activated with NOECHO, desactivated with ECHO
+! ---------------------------------------
+!21E0! 14 RAM bytes free conditionnaly
+! ---------------------------------------
+!ASMBW1=\$21E0          assembler backward reference 1
+!ASMBW2=\$21E2          assembler backward reference 2
+!ASMBW3=\$21E4          assembler backward reference 3
+!ASMFW1=\$21E6          assembler forward reference 1
+!ASMFW2=\$21E8          assembler forward reference 2
+!ASMFW3=\$21EA          assembler forward reference 3
+!RPT_WORD=\$21EC!    
+! ---------------------------------------
+!21EE! 14 RAM bytes free
+! ---------------------------------------
+
+! ---------------------------------------
+! SD buffer
+! ---------------------------------------
+SD_BUF_I2ADR=\$21FC!
+SD_BUF_I2CNT=\$21FE!
+SD_BUF=\$2200!      \ SD_Card buffer
+BUFEND=\$2400!
+
+! ---------------------------------------
+! FAT16 FileSystemInfos 
+! ---------------------------------------
+FATtype=\$2402!
+BS_FirstSectorL=\$2404!
+BS_FirstSectorH=\$2406!
+OrgFAT1=\$2408!
+FATSize=\$240A!
+OrgFAT2=\$240C!
+OrgRootDir=\$240E!
+OrgClusters=\$2410!         Sector of Cluster 0
+SecPerClus=\$2412!
+
+! ---------------------------------------
+! SD command
+! ---------------------------------------
+SD_CMD_FRM=\$2414!  6 bytes SD_CMDx inverted frame \${CRC,ll,LL,hh,HH,CMD}
+SD_CMD_FRM0=\$2414! CRC:ll  word access
+SD_CMD_FRM1=\$2415! ll      byte access
+SD_CMD_FRM2=\$2416! LL:hh   word access
+SD_CMD_FRM3=\$2417! hh      byte access
+SD_CMD_FRM4=\$2418! HH:CMD  word access
+SD_CMD_FRM5=\$2419! CMD     byte access
+SectorL=\$241A!     2 words
+SectorH=\$241C!
+
+! ---------------------------------------
+! BUFFER management
+! ---------------------------------------
+BufferPtr=\$241E! 
+BufferLen=\$2420!
+
+! ---------------------------------------
+! FAT entry
+! ---------------------------------------
+ClusterL=\$2422!     16 bits wide (FAT16)
+ClusterH=\$2424!     16 bits wide (FAT16)
+NewClusterL=\$2426!  16 bits wide (FAT16) 
+NewClusterH=\$2428!  16 bits wide (FAT16) 
+CurFATsector=\$242A!
+
+! ---------------------------------------
+! DIR entry
+! ---------------------------------------
+DIRclusterL=\$242C!  contains the Cluster of current directory ; 1 if FAT16 root directory
+DIRclusterH=\$242E!  contains the Cluster of current directory ; 1 if FAT16 root directory
+EntryOfst=\$2430!  
+
+! ---------------------------------------
+! Handle Pointer
+! ---------------------------------------
+CurrentHdl=\$2432!  contains the address of the last opened file structure, or 0
+
+! ---------------------------------------
+! Load file operation
+! ---------------------------------------
+pathname=\$2434!
+EndOfPath=\$2436!
+
+! ---------------------------------------
+! Handle structure
+! ---------------------------------------
+! three handle tokens : 
+! token = 0 : free handle
+! token = 1 : file to read
+! token = 2 : file updated (write)
+! token =-1 : LOAD"ed file (source file)
+
+! offset values
+HDLW_PrevHDL=0!     previous handle ; used by LOAD"
+HDLB_Token=2!       token
+HDLB_ClustOfst=3!   Current sector offset in current cluster (Byte)
+HDLL_DIRsect=4!     Dir SectorL (Long)
+HDLH_DIRsect=6!
+HDLW_DIRofst=8!     BUFFER offset of Dir entry
+HDLL_FirstClus=10!  File First ClusterLo (identify the file)
+HDLH_FirstClus=12!  File First ClusterHi (byte)
+HDLL_CurClust=14!   Current ClusterLo
+HDLH_CurClust=16!   Current ClusterHi (T as 3Th byte)
+HDLL_CurSize=18!    written size / not yet read size (Long)
+HDLH_CurSize=20!    written size / not yet read size (Long)
+HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
+HDLW_PrevLEN=24!    previous LEN
+HDLW_PrevORG=26!    previous ORG
+
+
+!OpenedFirstFile     ; "openedFile" structure 
+HandleMax=8!
+HandleLenght=28!
+FirstHandle=\$2438!
+HandleEnd=\$2518!
+
+!SD_card Input Buffer
+SDIB_I2CADR=\$2518!
+SDIB_I2CCNT=\$251A!
+SDIB_ORG=\$251C!
+
+SD_END=\$2570!
+SD_LEN=\$16E!
+
+
+
+! ----------------------------------------------------------------------
+! MSP430FR2433 Peripheral File Map
+! ----------------------------------------------------------------------
+!SFR_SFR         .equ 0100h           ; Special function
+!PMM_SFR         .equ 0120h           ; PMM
+!SYS_SFR         .equ 0140h           ; SYS
+!CS_SFR          .equ 0180h           ; Clock System
+!FRAM_SFR        .equ 01A0h           ; FRAM control
+!CRC16_SFR       .equ 01C0h
+!WDT_A_SFR       .equ 01CCh           ; Watchdog
+!PA_SFR          .equ 0200h           ; PORT1/2
+!PB_SFR          .equ 0220h           ; PORT3
+!RTC_SFR         .equ 0300h
+!TA0_SFR         .equ 0380h
+!TA1_SFR         .equ 03C0h
+!TA2_SFR         .equ 0400h
+!TA3_SFR         .equ 0440h
+!MPY_SFR         .equ 04C0h
+!eUSCI_A0_SFR    .equ 0500h           ; eUSCI_A0
+!eUSCI_A1_SFR    .equ 0520h           ; eUSCI_A1
+!eUSCI_B0_SFR    .equ 0540h           ; eUSCI_B0
+!BACK_MEM_SFR    .equ 0660h
+!ADC10_B_SFR     .equ 0700h
+
+SFRIE1=\$100!       \ SFR enable register
+SFRIFG1=\$102!      \ SFR flag register
+SFRRPCR=\$104!      \ SFR reset pin control
+
+PMMCTL0=\$120!      \ PMM Control 0
+PMMCTL1=\$122!      \ PMM Control 0
+PMMCTL2=\$124!      \ PMM Control 0
+PMMIFG=\$12A!       \ PMM interrupt flags 
+PM5CTL0=\$130!      \ PM5 Control 0
+
+SYSCTL=\$140!       \ System control 
+SYSBSLC=\$142!      \ Bootstrap loader configuration area             
+SYSJMBC=\$146!      \ JTAG mailbox control        
+SYSJMBI0=\$148!     \ JTAG mailbox input 0        
+SYSJMBI1=\$14A!     \ JTAG mailbox input 1        
+SYSJMBO0=\$14C!     \ JTAG mailbox output 0       
+SYSJMBO1=\$14E!     \ JTAG mailbox output 1       
+SYSUNIV=\$15A!      \ User NMI vector generator   
+SYSSNIV=\$15C!      \ System NMI vector generator 
+SYSRSTIV=\$15E!     \ Reset vector generator      
+SYSCFG0=\$160!      \ System configuration 0 
+SYSCFG1=\$162!      \ System configuration 1 
+SYSCFG2=\$164!      \ System configuration 2 
+
+CSCTL0=\$180!       \ CS control 0 
+CSCTL1=\$182!       \ CS control 1 
+CSCTL2=\$184!       \ CS control 2 
+CSCTL3=\$186!       \ CS control 3 
+CSCTL4=\$188!       \ CS control 4 
+CSCTL5=\$18A!       \ CS control 5 
+CSCTL6=\$18C!       \ CS control 6 
+CSCTL7=\$18E!       \ CS control 7 
+CSCTL8=\$190!       \ CS control 8 
+
+FRCTLCTL0=\$1A0!    \ FRAM control 0    
+GCCTL0=\$1A4!       \ General control 0 
+GCCTL1=\$1A6!       \ General control 1 
+
+CRC16DI=\$1C0!      \ CRC data input                  
+CRCDIRB=\$1C2!      \ CRC data input reverse byte     
+CRCINIRES=\$1C4!    \ CRC initialization and result   
+CRCRESR=\$1C6!      \ CRC result reverse byte  
+
+WDTCTL=\$1CC!        \ WDT control register
+
+PAIN=\$200!
+PAOUT=\$202!
+PADIR=\$204!
+PAREN=\$206!
+PASEL0=\$20A!
+PASEL1=\$20C!
+PAIES=\$218!
+PAIE=\$21A!
+PAIFG=\$21C!
+
+P1IN=\$200!
+P1OUT=\$202!
+P1DIR=\$204!
+P1REN=\$206!
+P1SEL0=\$20A!
+P1SEL1=\$20C!
+P1IV=\$20E!
+P1IES=\$218!
+P1IE=\$21A!
+P1IFG=\$21C!
+
+P2IN=\$201!
+P2OUT=\$203!
+P2DIR=\$205!
+P2REN=\$207!
+P2SEL0=\$20B!
+P2SEL1=\$20D!
+P2IES=\$219!
+P2IE=\$21B!
+P2IFG=\$21D!
+P2IV=\$21E!
+
+P3IN=\$220!
+P3OUT=\$222!
+P3DIR=\$224!
+P3REN=\$226!
+P3SEL0=\$22A!
+P3SEL1=\$22C!
+P3IV=\$22E!
+P3SELC=\$236!
+P3IES=\$238!
+P3IE=\$23A!
+P3IFG=\$23C!
+
+P4IN=\$221!
+P4OUT=\$223!
+P4DIR=\$225!
+P4REN=\$227!
+P4SEL0=\$22B!
+P4SEL1=\$22D!
+P4SELC=\$237!
+P4IES=\$239!
+P4IE=\$23B!
+P4IFG=\$23D!
+P4IV=\$23E!
+
+PCIN=\$240!
+PCOUT=\$242!
+PCDIR=\$244!
+PCREN=\$246!
+PCSEL0=\$24A!
+PCSEL1=\$24C!
+PCSELC=\$256!
+PCIES=\$258!
+PCIE=\$25A!
+PCIFG=\$25C!
+
+P5IN=\$240!
+P5OUT=\$242!
+P5DIR=\$244!
+P5REN=\$246!
+P5SEL0=\$24A!
+P5SEL1=\$24C!
+P5IV=\$24E!
+P5SELC=\$256!
+P5IES=\$258!
+P5IE=\$25A!
+P5IFG=\$25C!
+
+P6IN=\$241!
+P6OUT=\$243!
+P6DIR=\$245!
+P6REN=\$247!
+P6SEL0=\$24B!
+P6SEL1=\$24D!
+P6SELC=\$257!
+P6IES=\$259!
+P6IE=\$25B!
+P6IFG=\$25D!
+P6IV=\$25E!
+
+RTCCTL=\$300!       \ RTC control                                  
+RTCIV=\$304!        \ RTC interrupt vector word                       
+RTCMOD=\$308!       \ RTC modulo                                       
+RTCCNT=\$30C!       \ RTC counter register    
+
+TACLR=4!
+TAIFG=1!
+CCIFG=1!
+
+TA0CTL=\$380!       \ TA0 control                 
+TA0CCTL0=\$382!     \ Capture/compare control 0   
+TA0CCTL1=\$384!     \ Capture/compare control 1   
+TA0CCTL2=\$386!     \ Capture/compare control 2   
+TA0R=\$390!         \ TA0 counter register        
+TA0CCR0=\$392!      \ Capture/compare register 0  
+TA0CCR1=\$394!      \ Capture/compare register 1  
+TA0CCR2=\$396!      \ Capture/compare register 2  
+TA0EX0=\$3A0!       \ TA0 expansion register 0    
+TA0IV=\$3AE!        \ TA0 interrupt vector        
+
+TA1CTL=\$3C0!       \ TA1 control                 
+TA1CCTL0=\$3C2!     \ Capture/compare control 0   
+TA1CCTL1=\$3C4!     \ Capture/compare control 1   
+TA1CCTL2=\$3C6!     \ Capture/compare control 2   
+TA1R=\$3D0!         \ TA1 counter register        
+TA1CCR0=\$3D2!      \ Capture/compare register 0  
+TA1CCR1=\$3D4!      \ Capture/compare register 1  
+TA1CCR2=\$3D6!      \ Capture/compare register 2  
+TA1EX0=\$3E0!       \ TA1 expansion register 0    
+TA1IV=\$3EE!        \ TA1 interrupt vector        
+
+TA2CTL=\$400!       \ TA2 control                 
+TA2CCTL0=\$402!     \ Capture/compare control 0   
+TA2CCTL1=\$404!     \ Capture/compare control 1   
+TA2CCTL2=\$406!     \ Capture/compare control 2   
+TA2R=\$410!         \ TA2 counter register        
+TA2CCR0=\$412!      \ Capture/compare register 0  
+TA2CCR1=\$414!      \ Capture/compare register 1  
+TA2CCR1=\$416!      \ Capture/compare register 2  
+TA2EX0=\$420!       \ TA2 expansion register 0    
+TA2IV=\$42E!        \ TA2 interrupt vector        
+
+TA3CTL=\$440!       \ TA3 control                 
+TA3CCTL0=\$442!     \ Capture/compare control 0   
+TA3CCTL1=\$444!     \ Capture/compare control 1   
+TA3CCTL1=\$446!     \ Capture/compare control 2   
+TA3R=\$450!         \ TA3 counter register        
+TA3CCR0=\$452!      \ Capture/compare register 0  
+TA3CCR1=\$454!      \ Capture/compare register 1  
+TA3CCR1=\$456!      \ Capture/compare register 2  
+TA3EX0=\$460!       \ TA3 expansion register 0    
+TA3IV=\$46E!        \ TA3 interrupt vector        
+
+TB0CTL=\$480!       \ TB0 control                 
+TB0CCTL0=\$482!     \ Capture/compare control 0   
+TB0CCTL1=\$484!     \ Capture/compare control 1   
+TB0CCTL2=\$486!     \ Capture/compare control 2   
+TB0CCTL3=\$488!     \ Capture/compare control 3   
+TB0CCTL4=\$48A!     \ Capture/compare control 4   
+TB0CCTL5=\$48C!     \ Capture/compare control 5   
+TB0CCTL6=\$48E!     \ Capture/compare control 6   
+TB0R=\$490!         \ TB0 counter register        
+TB0CCR0=\$492!      \ Capture/compare register 0  
+TB0CCR1=\$494!      \ Capture/compare register 1  
+TB0CCR2=\$496!      \ Capture/compare register 2  
+TB0CCR3=\$498!      \ Capture/compare register 3  
+TB0CCR5=\$49A!      \ Capture/compare register 4 
+TB0CCR5=\$49C!      \ Capture/compare register 5  
+TB0CCR6=\$49E!      \ Capture/compare register 6  
+TB0EX0=\$4A0!       \ TB0 expansion register 0    
+TB0IV=\$4AE!        \ TB0 interrupt vector        
+
+MPY=\$4C0!          \ 16-bit operand 1 - multiply
+MPYS=\$4C2!         \ 16-bit operand 1 - signed multiply
+MAC=\$4C4!          \ 16-bit operand 1 - multiply accumulate
+MACS=\$4C6!         \ 16-bit operand 1 - signed multiply accumulate
+OP2=\$4C8!          \ 16-bit operand 2
+RESLO=\$4CA!        \ 16 x 16 result low word
+RESHI=\$4CC!        \ 16 x 16 result high word
+SUMEXT=\$4CE!       \ 16 x 16 sum extension register
+MPY32L=\$4D0!       \ 32-bit operand 1 - multiply low word
+MPY32H=\$4D2!       \ 32-bit operand 1 - multiply high word
+MPYS32L=\$4D4!      \ 32-bit operand 1 - signed multiply low word
+MPYS32H=\$4D6!      \ 32-bit operand 1 - signed multiply high word
+MAC32L=\$4D8!       \ 32-bit operand 1 - multiply accumulate low word
+MAC32H=\$4DA!       \ 32-bit operand 1 - multiply accumulate high word
+MACS32L=\$4DC!      \ 32-bit operand 1 - signed multiply accumulate low word
+MACS32H=\$4DE!      \ 32-bit operand 1 - signed multiply accumulate high word
+OP2L=\$4E0!         \ 32-bit operand 2 - low word
+OP2H=\$4E2!         \ 32-bit operand 2 - high word
+RES0=\$4E4!         \ 32 x 32 result 0 - least significant word
+RES1=\$4E6!         \ 32 x 32 result 1
+RES2=\$4E8!         \ 32 x 32 result 2
+RES3=\$4EA!         \ 32 x 32 result 3 - most significant word
+MPY32CTL0=\$4EC!    \ MPY32 control register 0
+
+
+UCA0CTLW0=\$500!    \ eUSCI_A control word 0        
+UCA0CTLW1=\$502!    \ eUSCI_A control word 1        
+UCA0BRW=\$506!         
+UCA0BR0=\$506!      \ eUSCI_A baud rate 0           
+UCA0BR1=\$507!      \ eUSCI_A baud rate 1           
+UCA0MCTLW=\$508!    \ eUSCI_A modulation control    
+UCA0STAT=\$50A!     \ eUSCI_A status                
+UCA0RXBUF=\$50C!    \ eUSCI_A receive buffer        
+UCA0TXBUF=\$50E!    \ eUSCI_A transmit buffer       
+UCA0ABCTL=\$510!    \ eUSCI_A LIN control           
+UCA0IRTCTL=\$512!   \ eUSCI_A IrDA transmit control 
+UCA0IRRCTL=\$513!   \ eUSCI_A IrDA receive control  
+UCA0IE=\$51A!       \ eUSCI_A interrupt enable      
+UCA0IFG=\$51C!      \ eUSCI_A interrupt flags       
+UCA0IV=\$51E!       \ eUSCI_A interrupt vector word 
+
+UCA1CTLW0=\$520!    \ eUSCI_A control word 0        
+UCA1CTLW1=\$522!    \ eUSCI_A control word 1        
+UCA1BRW=\$526!         
+UCA1BR0=\$526!      \ eUSCI_A baud rate 0           
+UCA1BR1=\$527!      \ eUSCI_A baud rate 1           
+UCA1MCTLW=\$528!    \ eUSCI_A modulation control    
+UCA1STAT=\$52A!     \ eUSCI_A status                
+UCA1RXBUF=\$52C!    \ eUSCI_A receive buffer        
+UCA1TXBUF=\$52E!    \ eUSCI_A transmit buffer       
+UCA1ABCTL=\$530!    \ eUSCI_A LIN control           
+UCA1IRTCTL=\$532!   \ eUSCI_A IrDA transmit control 
+UCA1IRRCTL=\$533!   \ eUSCI_A IrDA receive control  
+UCA1IE=\$53A!       \ eUSCI_A interrupt enable      
+UCA1IFG=\$53C!      \ eUSCI_A interrupt flags       
+UCA1IV=\$53E!       \ eUSCI_A interrupt vector word 
+
+UCB0CTLW0=\$540!    \ eUSCI_B control word 0          
+UCB0CTLW1=\$542!    \ eUSCI_B control word 1 
+UCB0BRW=\$546!         
+UCB0BR0=\$546!      \ eUSCI_B bit rate 0              
+UCB0BR1=\$547!      \ eUSCI_B bit rate 1              
+UCB0STATW=\$548!    \ eUSCI_B status word 
+UCBCNT0=\$549!      \ eUSCI_B hardware count           
+UCB0TBCNT=\$54A!    \ eUSCI_B byte counter threshold  
+UCB0RXBUF=\$54C!    \ eUSCI_B receive buffer          
+UCB0TXBUF=\$54E!    \ eUSCI_B transmit buffer         
+UCB0I2COA0=\$554!   \ eUSCI_B I2C own address 0       
+UCB0I2COA1=\$556!   \ eUSCI_B I2C own address 1       
+UCB0I2COA2=\$558!   \ eUSCI_B I2C own address 2       
+UCB0I2COA3=\$55A!   \ eUSCI_B I2C own address 3       
+UCB0ADDRX=\$55C!    \ eUSCI_B received address        
+UCB0ADDMASK=\$55E!  \ eUSCI_B address mask            
+UCB0I2CSA=\$560!    \ eUSCI I2C slave address         
+UCB0IE=\$56A!       \ eUSCI interrupt enable          
+UCB0IFG=\$56C!      \ eUSCI interrupt flags           
+UCB0IV=\$56E!       \ eUSCI interrupt vector word     
+
+UCB1CTLW0=\$580!    \ eUSCI_B control word 0          
+UCB1CTLW1=\$582!    \ eUSCI_B control word 1 
+UCB1BRW=\$586!         
+UCB1BR0=\$586!      \ eUSCI_B bit rate 0              
+UCB1BR1=\$587!      \ eUSCI_B bit rate 1              
+UCB1STATW=\$588!    \ eUSCI_B status word 
+UCB1NT0=\$589!      \ eUSCI_B hardware count           
+UCB1TBCNT=\$58A!    \ eUSCI_B byte counter threshold  
+UCB1RXBUF=\$58C!    \ eUSCI_B receive buffer          
+UCB1TXBUF=\$58E!    \ eUSCI_B transmit buffer         
+UCB1I2COA0=\$594!   \ eUSCI_B I2C own address 0       
+UCB1I2COA1=\$596!   \ eUSCI_B I2C own address 1       
+UCB1I2COA2=\$598!   \ eUSCI_B I2C own address 2       
+UCB1I2COA3=\$59A!   \ eUSCI_B I2C own address 3       
+UCB1ADDRX=\$59C!    \ eUSCI_B received address        
+UCB1ADDMASK=\$59E!  \ eUSCI_B address mask            
+UCB1I2CSA=\$5A0!    \ eUSCI I2C slave address         
+UCB1IE=\$5AA!       \ eUSCI interrupt enable          
+UCB1IFG=\$5AC!      \ eUSCI interrupt flags           
+UCB1IV=\$5AE!       \ eUSCI interrupt vector word     
+
+UCTXACK=\$20!
+UCTR=\$10!
+
+BAKMEM0=\$660!      \ Backup Memory 0     
+BAKMEM1=\$662!      \ Backup Memory 1     
+BAKMEM2=\$664!      \ Backup Memory 2     
+BAKMEM3=\$666!      \ Backup Memory 3     
+BAKMEM4=\$668!      \ Backup Memory 4     
+BAKMEM5=\$66A!      \ Backup Memory 5     
+BAKMEM6=\$66C!      \ Backup Memory 6     
+BAKMEM7=\$66E!      \ Backup Memory 7     
+BAKMEM8=\$670!      \ Backup Memory 8     
+BAKMEM9=\$672!      \ Backup Memory 9     
+BAKMEM10=\$674!     \ Backup Memory 10    
+BAKMEM11=\$676!     \ Backup Memory 11    
+BAKMEM12=\$678!     \ Backup Memory 12    
+BAKMEM13=\$67A!     \ Backup Memory 13    
+BAKMEM14=\$67C!     \ Backup Memory 14    
+BAKMEM15=\$67E!     \ Backup Memory 15    
+
+ADC10CTL0=\$700!    \ ADC10_B Control register 0               
+ADC10CTL1=\$702!    \ ADC10_B Control register 1               
+ADC10CTL2=\$704!    \ ADC10_B Control register 2               
+ADC10LO=\$706!      \ ADC10_B Window Comparator Low Threshold  
+ADC10HI=\$708!      \ ADC10_B Window Comparator High Threshold 
+ADC10MCTL0=\$70A!   \ ADC10_B Memory Control Register 0        
+ADC10MEM0=\$712!    \ ADC10_B Conversion Memory Register       
+ADC10IE=\$71A!      \ ADC10_B Interrupt Enable                 
+ADC10IFG=\$71C!     \ ADC10_B Interrupt Flags                  
+ADC10IV=\$71E!      \ ADC10_B Interrupt Vector Word            
+
+ADCON=\$10!
+ADCSTART=\$03!
+
+CP0CTL0=\$8E0!      \ Comparator control 0
+CP0CTL1=\$8E2!      \ Comparator control 1
+CP0INT=\$8E6!       \ Comparator interrupt
+CP0IV=\$8E8!        \ Comparator interrupt vector
+CP0DACCTL=\$8EA!    \ Comparator built-in DAC control
+CP0DACDATA=\$8EC!   \ Comparator built-in DAC data
+
+
index b6c3bdd..662d2d2 100644 (file)
@@ -35,6 +35,10 @@ xdodoes=\$C400!         restore rDODOES: MOV #xdodoes,rDODOES
 xdocon=\$C40E!          restore rDOCON: MOV #xdocon,rDOCON
 xdovar=\$C420!          restore rDOVAR: MOV #xdocon,rDOVAR  
 xdocol=\$C42A!          restore rDOCOL: MOV #xdocol,rDOCOL      only for DTC model = 1
+DODOES=\$1284!          CALL rDODOES
+DOCON=\$1285!           CALL rDOCON
+DOVAR=\$1286!           CALL rDOVAR
+
 ! to find DTC value, download \MSP430-FORTH\FastForthSpecs.4th
 ! if DTC = 1, restore rDOCOL as this : MOV #xdocol,rDOCOL
 ! if DTC = 2, restore rDOCOL as this : MOV #EXIT,rDOCOL
@@ -203,7 +207,7 @@ LAST_THREAD=\$21B8!
 LAST_CFA=\$21BA!
 LAST_PSP=\$21BC!
 
-!STATE=\$21BE!           Interpreter state
+STATEADR=\$21BE!           Interpreter state
 
 SOURCE_LEN=\$21C0!      len of input stream
 SOURCE_ORG=\$21C2!      adr of input stream
@@ -214,21 +218,10 @@ LASTVOC=\$21C8!         keep VOC-LINK
 CONTEXT=\$21CA!         CONTEXT dictionnary space (8 CELLS)
 CURRENT=\$21DA!         CURRENT dictionnary ptr
 
-!BASE=\$21DC!           numeric base, must be defined before first reset !
+BASEADR=\$21DC!           numeric base, must be defined before first reset !
 LINE=\$21DE!            line in interpretation, activated with NOECHO, desactivated with ECHO
 ! ---------------------------------------
-!21E0! 16 RAM bytes free conditionnaly
-! ---------------------------------------
-!SAV_CURRENT=\$21E0!    preserve CURRENT when create assembler words
-!ASMBW1=\$21E2          assembler backward reference 1
-!ASMBW2=\$21E4          assembler backward reference 2
-!ASMBW3=\$21E6          assembler backward reference 3
-!ASMFW1=\$21E8          assembler forward reference 1
-!ASMFW2=\$21EA          assembler forward reference 2
-!ASMFW3=\$21EC          assembler forward reference 3
-!RPT_WORD=\$21EE!    
-! ---------------------------------------
-!21EE! 12RAM bytes free
+!21E0! 28 RAM bytes free 
 ! ---------------------------------------
 
 ! ---------------------------------------
index 11456a7..b98c602 100644 (file)
@@ -36,6 +36,10 @@ xdodoes=\$C400!         restore rDODOES: MOV #xdodoes,rDODOES
 xdocon=\$C40E!          restore rDOCON: MOV #xdocon,rDOCON
 xdovar=\$C420!          restore rDOVAR: MOV #xdocon,rDOVAR  
 xdocol=\$C42A!          restore rDOCOL: MOV #xdocol,rDOCOL      only for DTC model = 1
+DODOES=\$1284!          CALL rDODOES
+DOCON=\$1285!           CALL rDOCON
+DOVAR=\$1286!           CALL rDOVAR
+
 ! to find DTC value, download \MSP430-FORTH\FastForthSpecs.4th
 ! if DTC = 1, restore rDOCOL as this : MOV #xdocol,rDOCOL
 ! if DTC = 2, restore rDOCOL as this : MOV #EXIT,rDOCOL
@@ -201,7 +205,7 @@ LAST_THREAD=\$21B8!
 LAST_CFA=\$21BA!
 LAST_PSP=\$21BC!
 
-!STATE=\$21BE!           Interpreter state
+STATEADR=\$21BE!           Interpreter state
 
 SOURCE_LEN=\$21C0!      len of input stream
 SOURCE_ORG=\$21C2!      adr of input stream
@@ -212,21 +216,10 @@ LASTVOC=\$21C8!         keep VOC-LINK
 CONTEXT=\$21CA!         CONTEXT dictionnary space (8 CELLS)
 CURRENT=\$21DA!         CURRENT dictionnary ptr
 
-!BASE=\$21DC!           numeric base, must be defined before first reset !
+BASEADR=\$21DC!           numeric base, must be defined before first reset !
 LINE=\$21DE!            line in interpretation, activated with NOECHO, desactivated with ECHO
 ! ---------------------------------------
-!21E0! 16 RAM bytes free conditionnaly
-! ---------------------------------------
-!SAV_CURRENT=\$21E0!    preserve CURRENT when create assembler words
-!ASMBW1=\$21E2          assembler backward reference 1
-!ASMBW2=\$21E4          assembler backward reference 2
-!ASMBW3=\$21E6          assembler backward reference 3
-!ASMFW1=\$21E8          assembler forward reference 1
-!ASMFW2=\$21EA          assembler forward reference 2
-!ASMFW3=\$21EC          assembler forward reference 3
-!RPT_WORD=\$21EE!    
-! ---------------------------------------
-!21EE! 12RAM bytes free
+!21E0! 28 RAM bytes free
 ! ---------------------------------------
 
 ! ---------------------------------------
index 484953f..7f6030a 100644 (file)
@@ -70,23 +70,23 @@ BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
 ;        .word  reset        ; $FFCE  -  RTC_B
 ;        .word  reset        ; $FFD0  -  I/O Port 4
 ;        .word  reset        ; $FFD2  -  I/O Port 3
-;        .word  reset        ; $FFD4  -  TB2_1
+;        .word  reset        ; $FFD4  -  TB2_x
 ;        .word  reset        ; $FFD6  -  TB2_0
 ;        .word  reset        ; $FFD8  -  I/O Port 2
-;        .word  reset        ; $FFDA  -  TB1_1
+;        .word  reset        ; $FFDA  -  TB1_x
 ;        .word  reset        ; $FFDC  -  TB1_0
 ;        .word  reset        ; $FFDE  -  I/O Port 1
 ;;   .org BSL_PASSWORD       ;Start of BSL PASSWORD
-;        .word  reset        ; $FFE0  -  TA1_1
+;        .word  reset        ; $FFE0  -  TA1_x
 ;        .word  reset        ; $FFE2  -  TA1_0
 ;        .word  reset        ; $FFE4  -  DMA
-;        .word  reset        ; $FFE8  -  TA0_1
+;        .word  reset        ; $FFE8  -  TA0_x
 ;        .word  reset        ; $FFEA  -  TA0_0
 ;        .word  reset        ; $FFEC  -  ADC10_B
 ;        .word  reset        ; $FFEE  -  eUSCI_B0
 ;        .word  reset        ; $FFF0  -  eUSCI_A0
 ;        .word  reset        ; $FFF2  -  Watchdog
-;        .word  reset        ; $FFF4  -  TB0_1
+;        .word  reset        ; $FFF4  -  TB0_x
 ;        .word  reset        ; $FFF6  -  TB0_0
 ;        .word  reset        ; $FFF8  -  COMP_D
 ;        .word  reset        ; $FFFA  -  userNMI
index 1adbcc5..dbc3ab0 100644 (file)
@@ -40,6 +40,10 @@ xdodoes=\$C200!         restore rDODOES: MOV #xdodoes,rDODOES
 xdocon=\$C20E!          restore rDOCON: MOV #xdocon,rDOCON
 xdovar=\$C220!          restore rDOVAR: MOV #xdocon,rDOVAR  
 xdocol=\$C22A!          restore rDOCOL: MOV #xdocol,rDOCOL      only for DTC model = 1
+DODOES=\$1284!          CALL rDODOES
+DOCON=\$1285!           CALL rDOCON
+DOVAR=\$1286!           CALL rDOVAR
+
 ! to find DTC value, download \MSP430-FORTH\FastForthSpecs.4th
 ! if DTC = 1, restore rDOCOL as this : MOV #xdocol,rDOCOL
 ! if DTC = 2, restore rDOCOL as this : MOV #EXIT,rDOCOL
@@ -310,7 +314,7 @@ LAST_THREAD=\$1DB8!
 LAST_CFA=\$1DBA!
 LAST_PSP=\$1DBC!
 
-!STATE=\$1DBE!          Interpreter state
+STATEADR=\$1DBE!          Interpreter state
 
 SOURCE_LEN=\$1DC0!      len of input stream
 SOURCE_ORG=\$1DC2!      adr of input stream
@@ -321,21 +325,10 @@ LASTVOC=\$1DC8!         keep VOC-LINK
 CONTEXT=\$1DCA!         CONTEXT dictionnary space (8 CELLS)
 CURRENT=\$1DDA!         CURRENT dictionnary ptr
 
-!BASE=\$1DDC!           numeric base, must be defined before first reset !
+BASEADR=\$1DDC!           numeric base, must be defined before first reset !
 LINE=\$1DDE!            line in interpretation, activated with NOECHO, desactivated with ECHO
 ! ---------------------------------------
-!1DE0! 16 RAM bytes free conditionnaly
-! ---------------------------------------
-!SAV_CURRENT=\$1DE0! \ preserve CURRENT when create assembler words
-!ASMBW1=\$1DE2!      \ assembler backward reference 1
-!ASMBW2=\$1DE4!      \ assembler backward reference 2
-!ASMBW3=\$1DE6!      \ assembler backward reference 3
-!ASMFW1=\$1DE8!      \ assembler forward reference 1
-!ASMFW2=\$1DEA!      \ assembler forward reference 2
-!ASMFW3=\$1DEC!      \ assembler forward reference 3
-!RPT_WORD=\$1DEE!    \ 
-! ---------------------------------------
-!1DF0! 12 RAM bytes free
+!1DE0! 28 RAM bytes free 
 ! ---------------------------------------
 
 ! ---------------------------------------
@@ -479,6 +472,28 @@ TB0EX0=\$3E0!       \ TB0 expansion register 0
 TB0IV=\$3EE!        \ TB0 interrupt vector
 
 
+TB1CTL=\$400!       \ TB1 control                 
+TB1CCTL0=\$402!     \ Capture/compare control 0   
+TB1CCTL1=\$404!     \ Capture/compare control 1   
+TB1CCTL2=\$406!     \ Capture/compare control 2   
+TB1R=\$410!         \ TB1 counter register        
+TB1CCR0=\$412!      \ Capture/compare register 0  
+TB1CCR1=\$414!      \ Capture/compare register 1  
+TB1CCR2=\$416!      \ Capture/compare register 2  
+TB1EX0=\$420!       \ TB1 expansion register 0    
+TB1IV=\$42E!        \ TB1 interrupt vector        
+
+TB2CTL=\$440!       \ TB2 control                 
+TB2CCTL0=\$442!     \ Capture/compare control 0   
+TB2CCTL1=\$444!     \ Capture/compare control 1   
+TB2CCTL2=\$446!     \ Capture/compare control 2   
+TB2R=\$450!         \ TB2 counter register        
+TB2CCR0=\$452!      \ Capture/compare register 0  
+TB2CCR1=\$454!      \ Capture/compare register 1  
+TB2CCR2=\$456!      \ Capture/compare register 2  
+TB2EX0=\$460!       \ TB2 expansion register 0    
+TB2IV=\$46E!        \ TB2 interrupt vector        
+
 ! RTC_B
 RTCCTL0=\$4A0!      \ RTC control 0
 RTCCTL1=\$4A1!      \ RTC control 1
index 4874634..9fc231c 100644 (file)
@@ -40,6 +40,10 @@ xdodoes=\$C200!         restore rDODOES: MOV #xdodoes,rDODOES
 xdocon=\$C20E!          restore rDOCON: MOV #xdocon,rDOCON
 xdovar=\$C220!          restore rDOVAR: MOV #xdocon,rDOVAR  
 xdocol=\$C22A!          restore rDOCOL: MOV #xdocol,rDOCOL      only for DTC model = 1
+DODOES=\$1284!          CALL rDODOES
+DOCON=\$1285!           CALL rDOCON
+DOVAR=\$1286!           CALL rDOVAR
+
 ! to find DTC value, download \MSP430-FORTH\FastForthSpecs.4th
 ! if DTC = 1, restore rDOCOL as this : MOV #xdocol,rDOCOL
 ! if DTC = 2, restore rDOCOL as this : MOV #EXIT,rDOCOL
@@ -269,6 +273,7 @@ SD_LEN=\$C2!
 SDIB_I2CADR=\$1CE0!
 SDIB_I2CCNT=\$1CE2!
 SDIB_ORG=\$1CE4!
+SDIB_LEN=\$54!
 
 
 ! ============================================
@@ -312,7 +317,7 @@ LAST_THREAD=\$1DB8!
 LAST_CFA=\$1DBA!
 LAST_PSP=\$1DBC!
 
-!STATE=\$1DBE!          Interpreter state
+STATEADR=\$1DBE!          Interpreter state
 
 SOURCE_LEN=\$1DC0!      len of input stream
 SOURCE_ORG=\$1DC2!      adr of input stream
@@ -323,21 +328,10 @@ LASTVOC=\$1DC8!         keep VOC-LINK
 CONTEXT=\$1DCA!         CONTEXT dictionnary space (8 CELLS)
 CURRENT=\$1DDA!         CURRENT dictionnary ptr
 
-!BASE=\$1DDC!           numeric base, must be defined before first reset !
+BASEADR=\$1DDC!           numeric base, must be defined before first reset !
 LINE=\$1DDE!            line in interpretation, activated with NOECHO, desactivated with ECHO
 ! ---------------------------------------
-!1DE0! 16 RAM bytes free conditionnaly
-! ---------------------------------------
-!SAV_CURRENT=\$1DE0! \ preserve CURRENT when create assembler words
-!ASMBW1=\$1DE2!      \ assembler backward reference 1
-!ASMBW2=\$1DE4!      \ assembler backward reference 2
-!ASMBW3=\$1DE6!      \ assembler backward reference 3
-!ASMFW1=\$1DE8!      \ assembler forward reference 1
-!ASMFW2=\$1DEA!      \ assembler forward reference 2
-!ASMFW3=\$1DEC!      \ assembler forward reference 3
-!RPT_WORD=\$1DEE!    \ 
-! ---------------------------------------
-!1DF0! 12 RAM bytes free
+!1DE0! 28 RAM bytes free 
 ! ---------------------------------------
 
 ! ---------------------------------------
index 0d5e566..7fddbd5 100644 (file)
@@ -45,6 +45,10 @@ xdodoes=\$4400!         restore rDODOES: MOV #xdodoes,rDODOES
 xdocon=\$440E!          restore rDOCON: MOV #xdocon,rDOCON
 xdovar=\$4420!          restore rDOVAR: MOV #xdocon,rDOVAR  
 xdocol=\$442A!          restore rDOCOL: MOV #xdocol,rDOCOL      only for DTC model = 1
+DODOES=\$1284!          CALL rDODOES
+DOCON=\$1285!           CALL rDOCON
+DOVAR=\$1286!           CALL rDOVAR
+
 ! to find DTC value, download \MSP430-FORTH\FastForthSpecs.4th
 ! if DTC = 1, restore rDOCOL as this : MOV #xdocol,rDOCOL
 ! if DTC = 2, restore rDOCOL as this : MOV #EXIT,rDOCOL
@@ -219,7 +223,7 @@ LAST_THREAD=\$1DB8!
 LAST_CFA=\$1DBA!
 LAST_PSP=\$1DBC!
 
-!STATE=\$1DBE!           Interpreter state
+STATEADR=\$1DBE!           Interpreter state
 
 SOURCE_LEN=\$1DC0!      len of input stream
 SOURCE_ADR=\$1DC2!      adr of input stream
@@ -230,21 +234,10 @@ LASTVOC=\$1DC8!         keep VOC-LINK
 CONTEXT=\$1DCA!         CONTEXT dictionnary space (8 CELLS)
 CURRENT=\$1DDA!         CURRENT dictionnary ptr
 
-!BASE=\$1DDC!           numeric base, must be defined before first reset !
+BASEADR=\$1DDC!           numeric base, must be defined before first reset !
 LINE=\$1DDE!            line in interpretation, activated with NOECHO, desactivated with ECHO
 ! ---------------------------------------
-!1DE0! 16 RAM bytes free conditionnaly
-! ---------------------------------------
-!SAV_CURRENT=\$1DE0! \ preserve CURRENT when create assembler words
-!ASMBW1=\$1DE2!      \ assembler backward reference 1
-!ASMBW2=\$1DE4!      \ assembler backward reference 2
-!ASMBW3=\$1DE6!      \ assembler backward reference 3
-!ASMFW1=\$1DE8!      \ assembler forward reference 1
-!ASMFW2=\$1DEA!      \ assembler forward reference 2
-!ASMFW3=\$1DEC!      \ assembler forward reference 3
-!RPT_WORD=\$1DEE!    \ 
-! ---------------------------------------
-!1DF0! 12 RAM bytes free
+!1DE0! 28 RAM bytes free 
 ! ---------------------------------------
 
 ! ---------------------------------------
@@ -351,6 +344,7 @@ HandleEnd=\$2118!
 SDIB_I2CADR=\$2118!
 SDIB_I2CCNT=\$211A!
 SDIB_ORG=\$251C!
+SDIB_LEN=\$54!
 
 SD_END=\$2170!
 SD_LEN=\$16E!
index e2a5684..2b12896 100644 (file)
@@ -45,7 +45,7 @@ TLV_LEN         .equ 00100h      ;
 ; RAM
 ; ----------------------------------------------
 RAM_ORG         .equ 01C00h
-RAM_LEN         .equ 0FC00h
+RAM_LEN         .equ 00800h
 ; ----------------------------------------------
 ; FRAM
 ; ----------------------------------------------
index c609a87..186c6d3 100644 (file)
@@ -44,6 +44,10 @@ xdodoes=\$4400!         restore rDODOES: MOV #xdodoes,rDODOES
 xdocon=\$440E!          restore rDOCON: MOV #xdocon,rDOCON
 xdovar=\$4420!          restore rDOVAR: MOV #xdocon,rDOVAR  
 xdocol=\$442A!          restore rDOCOL: MOV #xdocol,rDOCOL      only for DTC model = 1
+DODOES=\$1284!          CALL rDODOES
+DOCON=\$1285!           CALL rDOCON
+DOVAR=\$1286!           CALL rDOVAR
+
 ! to find DTC value, download \MSP430-FORTH\FastForthSpecs.4th
 ! if DTC = 1, restore rDOCOL as this : MOV #xdocol,rDOCOL
 ! if DTC = 2, restore rDOCOL as this : MOV #EXIT,rDOCOL
@@ -219,7 +223,7 @@ LAST_THREAD=\$1DB8!
 LAST_CFA=\$1DBA!
 LAST_PSP=\$1DBC!
 
-!STATE=\$1DBE!           Interpreter state
+STATEADR=\$1DBE!           Interpreter state
 
 SOURCE_LEN=\$1DC0!      len of input stream
 SOURCE_ORG=\$1DC2!      adr of input stream
@@ -230,21 +234,10 @@ LASTVOC=\$1DC8!         keep VOC-LINK
 CONTEXT=\$1DCA!         CONTEXT dictionnary space (8 CELLS)
 CURRENT=\$1DDA!         CURRENT dictionnary ptr
 
-!BASE=\$1DDC!           numeric base, must be defined before first reset !
+BASEADR=\$1DDC!           numeric base, must be defined before first reset !
 LINE=\$1DDE!            line in interpretation, activated with NOECHO, desactivated with ECHO
 ! ---------------------------------------
-!1DE0! 16 RAM bytes free conditionnaly
-! ---------------------------------------
-!SAV_CURRENT=\$1DE0! \ preserve CURRENT when create assembler words
-!ASMBW1=\$1DE2!      \ assembler backward reference 1
-!ASMBW2=\$1DE4!      \ assembler backward reference 2
-!ASMBW3=\$1DE6!      \ assembler backward reference 3
-!ASMFW1=\$1DE8!      \ assembler forward reference 1
-!ASMFW2=\$1DEA!      \ assembler forward reference 2
-!ASMFW3=\$1DEC!      \ assembler forward reference 3
-!RPT_WORD=\$1DEE!    \ 
-! ---------------------------------------
-!1DF0! 12 RAM bytes free
+!1DE0! 28 RAM bytes free 
 ! ---------------------------------------
 
 ! ---------------------------------------
index f5282c1..8ae782b 100644 (file)
@@ -59,6 +59,10 @@ xdodoes=\$4000!         restore rDODOES: MOV #xdodoes,rDODOES
 xdocon=\$400E!          restore rDOCON: MOV #xdocon,rDOCON
 xdovar=\$4020!          restore rDOVAR: MOV #xdocon,rDOVAR  
 xdocol=\$402A!          restore rDOCOL: MOV #xdocol,rDOCOL      only for DTC = 1
+DODOES=\$1284!          CALL rDODOES
+DOCON=\$1285!           CALL rDOCON
+DOVAR=\$1286!           CALL rDOVAR
+
 ! to find DTC value, download \MSP430-FORTH\FastForthSpecs.4th
 ! if DTC = 1, restore rDOCOL as this : MOV #xdocol,rDOCOL
 ! if DTC = 2, restore rDOCOL as this : MOV #EXIT,rDOCOL
@@ -249,7 +253,7 @@ LAST_THREAD=\$1DB8!
 LAST_CFA=\$1DBA!
 LAST_PSP=\$1DBC!
 
-!STATE=\$1DBE!       \ Interpreter state
+STATEADR=\$1DBE!       \ Interpreter state
 
 SOURCE_LEN=\$1DC0!  \ len of input stream
 SOURCE_ORG=\$1DC2!  \ adr of input stream
@@ -260,21 +264,10 @@ LASTVOC=\$1DC8!     \ keep VOC-LINK
 CONTEXT=\$1DCA!     \ CONTEXT dictionnary space (8 CELLS)
 CURRENT=\$1DDA!     \ CURRENT dictionnary ptr
 
-!BASE=\$1DDC!        \ numeric base, must be defined before first reset !
+BASEADR=\$1DDC!        \ numeric base, must be defined before first reset !
 LINE=\$1DDE!        \ line in interpretation, activated with NOECHO, desactivated with ECHO
 ! ---------------------------------------
-!1DE0! 16 RAM bytes free conditionnaly
-! ---------------------------------------
-!SAV_CURRENT=\$1DE0! \ preserve CURRENT when create assembler words
-!ASMBW1=\$1DE2!      \ assembler backward reference 1
-!ASMBW2=\$1DE4!      \ assembler backward reference 2
-!ASMBW3=\$1DE6!      \ assembler backward reference 3
-!ASMFW1=\$1DE8!      \ assembler forward reference 1
-!ASMFW2=\$1DEA!      \ assembler forward reference 2
-!ASMFW3=\$1DEC!      \ assembler forward reference 3
-!RPT_WORD=\$1DEE!    \ 
-! ---------------------------------------
-!1DF0! 12 RAM bytes free
+!1DE0! 28 RAM bytes free 
 ! ---------------------------------------
 
 ! ---------------------------------------
@@ -380,7 +373,8 @@ HandleEnd=\$2118!
 !SD_card Input Buffer
 SDIB_I2CADR=\$2118!
 SDIB_I2CCNT=\$211A!
-SDIB_ORG=\$251C!
+SDIB_ORG=\$211C!
+SDIB_LEN=\$54!
 
 SD_END=\$2170!
 SD_LEN=\$16E!
index 45c05cb..98db775 100644 (file)
@@ -47,6 +47,10 @@ xdodoes=\$4400!         restore rDODOES: MOV #xdodoes,rDODOES
 xdocon=\$440E!          restore rDOCON: MOV #xdocon,rDOCON
 xdovar=\$4420!          restore rDOVAR: MOV #xdocon,rDOVAR  
 xdocol=\$442A!          restore rDOCOL: MOV #xdocol,rDOCOL      only for DTC model = 1
+DODOES=\$1284!          CALL rDODOES
+DOCON=\$1285!           CALL rDOCON
+DOVAR=\$1286!           CALL rDOVAR
+
 ! to find DTC value, download \MSP430-FORTH\FastForthSpecs.4th
 ! if DTC = 1, restore rDOCOL as this : MOV #xdocol,rDOCOL
 ! if DTC = 2, restore rDOCOL as this : MOV #EXIT,rDOCOL
@@ -156,7 +160,6 @@ NOP3=MOV R0,R0!     \ MOV PC,PC      one word three cycles
 NEXT=MOV \@R13+,R0! \ MOV @IP+,PC
 SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 
-
 ! =================================================
 ! MSP430FR5x6x DEVICES HAVE SPECIFIC RAM ADDRESSES!
 ! =================================================
@@ -227,7 +230,7 @@ LAST_THREAD=\$1DB8!
 LAST_CFA=\$1DBA!
 LAST_PSP=\$1DBC!
 
-!STATE=\$1DBE!           Interpreter state
+STATEADR=\$1DBE!        Interpreter state
 
 SOURCE_LEN=\$1DC0!      len of input stream
 SOURCE_ORG=\$1DC2!      adr of input stream
@@ -238,21 +241,10 @@ LASTVOC=\$1DC8!         keep VOC-LINK
 CONTEXT=\$1DCA!         CONTEXT dictionnary space (8 CELLS)
 CURRENT=\$1DDA!         CURRENT dictionnary ptr
 
-!BASE=\$1DDC!           numeric base, must be defined before first reset !
+BASEADR=\$1DDC!           numeric base, must be defined before first reset !
 LINE=\$1DDE!            line in interpretation, activated with NOECHO, desactivated with ECHO
 ! ---------------------------------------
-!1DE0! 16 RAM bytes free conditionnaly
-! ---------------------------------------
-!SAV_CURRENT=\$1DE0! \ preserve CURRENT when create assembler words
-!ASMBW1=\$1DE2!      \ assembler backward reference 1
-!ASMBW2=\$1DE4!      \ assembler backward reference 2
-!ASMBW3=\$1DE6!      \ assembler backward reference 3
-!ASMFW1=\$1DE8!      \ assembler forward reference 1
-!ASMFW2=\$1DEA!      \ assembler forward reference 2
-!ASMFW3=\$1DEC!      \ assembler forward reference 3
-!RPT_WORD=\$1DEE!    \ 
-! ---------------------------------------
-!1DF0! 12 RAM bytes free
+!1DE0! 28 RAM bytes free 
 ! ---------------------------------------
 
 ! ---------------------------------------
@@ -358,7 +350,8 @@ HandleEnd=\$2118!
 !SD_card Input Buffer
 SDIB_I2CADR=\$2118!
 SDIB_I2CCNT=\$211A!
-SDIB_ORG=\$251C!
+SDIB_ORG=\$211C!
+SDIB_LEN=\$54!
 
 SD_END=\$2170!
 SD_LEN=\$16E!
index d4427a8..91be812 100644 (file)
 ;               P2.3  -   SW2
 ;               P2.5  -   J2.10     <----   SD_CD (Card Detect)
 
-            MOV #-1,&PAREN      ; all inputs with pull resistors
-            MOV #1,&PADIR       ; all pins as input else LED1 as output
-            MOV #0FFFEh,&PAOUT  ; all pins with pullup resistors else LED1 = output low
+            MOV #-1,&PAREN      ; all inputs with pull up/down resistors
+            MOV #0FFFEh,&PAOUT  ; all pins with pullup resistors else LED1
 
     .IFDEF UCA0_TERM
 ; UCA0_RXD  -   P1.6    - J1.3      <----   TX  UARTtoUSB bridge
@@ -200,8 +199,8 @@ SD_CDIN     .equ  P2IN
 ; UCB1 SIMO     P4.6    -   J2.15   ---->   SD_SDI
 ; UCB1 SOMI     P4.7    -   J2.14   <----   SD_SDO
 
-            MOV.B #-1,&PBOUT  ; pullup resistors for all pins
             BIS.B #-1,&PBREN  ; all pins with pull resistors
+            MOV.B #-1,&PBOUT  ; pullup resistors for all pins
 
     .IFDEF UCA1_TERM
 ; UCA1 RXD      P4.2    -   J101.8  <----   TX  UARTtoUSB bridge
@@ -233,9 +232,8 @@ SD_BUS      .equ 0E000h ; pins P4.5 as UCA1CLK, P4.6 as UCA1SIMO & P4.7 as UCA1S
 
 ;           P6.6    -   LED2 green
 
-            BIS.B #0BFh,&P6REN  ; all pins with pull up resistors else P6.6
-            MOV.B #0BFh,&P6OUT  ; OUT high for all pins else P6.6
-            MOV.B #040h,&P6DIR  ; all pins with pullup resistors else LED2 = output low
+            BIS.B #-1,&P6REN    ; all pins with pull up/down resistors
+            MOV.B #0BFh,&P6OUT  ; all pins with pull up resistors else P6.6
 
 ; ----------------------------------------------------------------------
 ; FRAM config
@@ -272,6 +270,14 @@ SD_BUS      .equ 0E000h ; pins P4.5 as UCA1CLK, P4.6 as UCA1SIMO & P4.7 as UCA1S
 ;    BIS.B #2,&P1DIR
 
 
+    .IFDEF LF_XTAL
+;           MOV     #0000h,&CSCTL3      ; FLL select XT1, FLLREFDIV=0 (default value)
+            MOV     #0000h,&CSCTL4      ; ACLOCK select XT1, MCLK & SMCLK select DCOCLKDIV
+    .ELSE
+            BIS     #0010h,&CSCTL3      ; FLL select REFCLOCK
+;           MOV     #0100h,&CSCTL4      ; ACLOCK select REFO, MCLK & SMCLK select DCOCLKDIV (default value)
+    .ENDIF
+
     .IF FREQUENCY = 0.5
 
 ;            MOV     #058h,&CSCTL0       ; preset DCO = measured value @ 0x180 (88)
@@ -423,14 +429,6 @@ SD_BUS      .equ 0E000h ; pins P4.5 as UCA1CLK, P4.6 as UCA1SIMO & P4.7 as UCA1S
     .error "bad frequency setting, only 0.5,1,2,4,8,12,16,20,24 MHz"
     .ENDIF
 
-    .IFDEF LF_XTAL
-;           MOV     #0000h,&CSCTL3      ; FLL select XT1, FLLREFDIV=0 (default value)
-            MOV     #0000h,&CSCTL4      ; ACLOCK select XT1, MCLK & SMCLK select DCOCLKDIV
-    .ELSE
-            BIS     #0010h,&CSCTL3      ; FLL select REFCLOCK
-;           MOV     #0100h,&CSCTL4      ; ACLOCK select REFO, MCLK & SMCLK select DCOCLKDIV (default value)
-    .ENDIF
-
             BIS &SYSRSTIV,&SAVE_SYSRSTIV; store volatile SYSRSTIV preserving a pending request for DEEP_RST
 ;            MOV &SAVE_SYSRSTIV,TOS  ;
 ;            CMP #2,TOS              ; POWER ON ?
index e14b5f6..19b88e6 100644 (file)
@@ -160,26 +160,26 @@ TERM_BUS=\$0C!
 
 TERM_IN=\$221!          P4
 TERM_REN=\$227!
-TERM_SEL=\$22B!
+TERM_SEL=\$22B!     \ SEL0
 TERM_IE=\$23B!
 TERM_IFG=\$23D!
 TERM_Vec=\$FFE2!        UCA1
 
-TERM_CTLW0=\$580!    \ eUSCI_A1 control word 0
-TERM_CTLW1=\$582!    \ eUSCI_A1 control word 1
+TERM_CTLW0=\$580!   \ eUSCI_A1 control word 0
+TERM_CTLW1=\$582!   \ eUSCI_A1 control word 1
 TERM_BRW=\$586!
-TERM_BR0=\$586!      \ eUSCI_A1 baud rate 0
-TERM_BR1=\$587!      \ eUSCI_A1 baud rate 1
-TERM_MCTLW=\$588!    \ eUSCI_A1 modulation control
-TERM_STATW=\$58A!    \ eUSCI_A1 status
-TERM_RXBUF=\$58C!    \ eUSCI_A1 receive buffer
-TERM_TXBUF=\$58E!    \ eUSCI_A1 transmit buffer
-TERM_ABCTL=\$590!    \ eUSCI_A1 LIN control
-TERM_IRTCTL=\$592!   \ eUSCI_A1 IrDA transmit control
-TERM_IRRCTL=\$593!   \ eUSCI_A1 IrDA receive control
-TERM_IE=\$59A!       \ eUSCI_A1 interrupt enable
-TERM_IFG=\$59C!      \ eUSCI_A1 interrupt flags
-TERM_IV=\$59E!       \ eUSCI_A1 interrupt vector word
+TERM_BR0=\$586!     \ eUSCI_A1 baud rate 0
+TERM_BR1=\$587!     \ eUSCI_A1 baud rate 1
+TERM_MCTLW=\$588!   \ eUSCI_A1 modulation control
+TERM_STATW=\$58A!   \ eUSCI_A1 status
+TERM_RXBUF=\$58C!   \ eUSCI_A1 receive buffer
+TERM_TXBUF=\$58E!   \ eUSCI_A1 transmit buffer
+TERM_ABCTL=\$590!   \ eUSCI_A1 LIN control
+TERM_IRTCTL=\$592!  \ eUSCI_A1 IrDA transmit control
+TERM_IRRCTL=\$593!  \ eUSCI_A1 IrDA receive control
+TERM_IE=\$59A!      \ eUSCI_A1 interrupt enable
+TERM_IFG=\$59C!     \ eUSCI_A1 interrupt flags
+TERM_IV=\$59E!      \ eUSCI_A1 interrupt vector word
 
 RTS=1!                  P2.0
 CTS=2!                  P2.1
@@ -223,9 +223,9 @@ LCD_DB_REN=\$347
 LCD_DB=\$0F!            P6.3210
 !LCD timer
 LCD_TIM_CTL=\$380!      TB0CTL
-LCD_TIM_CCTL2=\$386!     TB0CCTL2
+LCD_TIM_CCTLn=\$386!    TB0CCTL2
 LCD_TIM_CCR0=\$392!     TB0CCR0
-LCD_TIM_CCR2=\$396!     TB0CCR2
+LCD_TIM_CCRn=\$396!     TB0CCR2
 LCD_TIM_EX0=\$3A0!      TB0EX0
 
 
@@ -276,7 +276,7 @@ I2CMM_IN=\$200!
 I2CMM_OUT=\$202!
 I2CMM_DIR=\$204!
 I2CMM_REN=\$206!
-I2CMM_SEL1=\$20C!
+I2CMM_SEL1=\$20A!       SEL0
 I2CMM_Vec=\$FFE0!       UCB0
 MMSDA=4!                P1.2
 MMSCL=8!                P1.3
@@ -287,7 +287,7 @@ I2CM_IN=\$200!
 I2CM_OUT=\$202!
 I2CM_DIR=\$204!
 I2CM_REN=\$206!
-I2CM_SEL1=\$20C!
+I2CM_SEL1=\$20A!        SEL0
 I2CM_Vec=\$FFE0!        UCB0
 MSDA=4!                 P1.2
 MSCL=8!                 P1.3
@@ -298,7 +298,7 @@ I2CS_IN=\$200!
 I2CS_OUT=\$202!
 I2CS_DIR=\$204!
 I2CS_REN=\$206!
-I2CS_SEL1=\$20C!
+I2CS_SEL1=\$20A!        SEL0
 I2CS_Vec=\$FFE0!        UCB0
 SSDA=4!                 P1.2
 SSCL=8!                 P1.3
@@ -310,7 +310,7 @@ SD_CS=\$20!             P2.5 as SD_CS
 SD_CSOUT=\$203!
 SD_CSDIR=\$205!
 
-SD_SEL=\$22D!           P4SEL0 to configure UCB1
+SD_SEL=\$22B!           P4SEL0 to configure UCB1
 SD_REN=\$227!           P4REN to configure pullup resistors
 SD_BUS=\$7000!          pins P4.5 as UCB1CLK, P4.6 as UCB1SIMO & P4.7 as UCB1SOMI
 
index f0a8c73..0fefd53 100644 (file)
@@ -165,9 +165,8 @@ TERM_SEL    .equ P2SEL0
 TERM_REN    .equ P2REN
     .ENDIF
 
-            MOV #-1,&PAREN      ; all inputs with pull resistors
-            MOV #00003h,&PADIR  ; all pins as input else LED1/LED2 as output
-            MOV #0FFFCh,&PAOUT  ; all pins with pullup resistors and LED1/LED2 = output low
+            MOV #-1,&PAREN      ; all inputs with pull up/down resistors
+            MOV #0FFFCh,&PAOUT  ; all pins with pullup resistors else LED1/LED2
 
     .IFDEF TERMINAL4WIRES
 ; RTS output is wired to the CTS input of UART2USB bridge 
@@ -216,8 +215,8 @@ I2CT_SLA_REN    .equ   P2REN
 ; reset state : Px{DIR,REN,SEL0,SEL1,SELC,IE,IFG,IV} = 0 ; Px{IN,OUT,IES} = ?
 
 ; PORT3 usage
-            MOV.B #-1,&P3OUT  ; OUT1 for all pins
-            BIS.B #-1,&P3REN  ; all pins with pull resistors
+            BIS.B #-1,&P3REN  ; all pins with pull up/down resistors
+            MOV.B #-1,&P3OUT  ; all pins with pull up resistor
 
 
 ; ----------------------------------------------------------------------
index af2c185..dc0d5b1 100644 (file)
@@ -114,7 +114,7 @@ TERM_BUS=\$30!
 
 TERM_IN=\$200!
 TERM_REN=\$206!
-TERM_SEL=\$20C!
+TERM_SEL=\$20A!     \ SEL0
 TERM_IE=\$21A!
 TERM_IFG=\$21C!
 
@@ -181,8 +181,8 @@ I2CSMM_IN=\$220!
 I2CSMM_OUT=\$222!
 I2CSMM_DIR=\$224!
 I2CSMM_REN=\$226!
-SMMSDA==4!            P3.2
-SMMSCL==2!            P3.1
+SMMSDA=4!            P3.2
+SMMSCL=2!            P3.1
 SMM_BUS=\$06!    
 
 !I2C_Multi_Master
@@ -190,7 +190,7 @@ I2CMM_IN=\$200!
 I2CMM_OUT=\$202!
 I2CMM_DIR=\$204!
 I2CMM_REN=\$206!
-I2CMM_SEL1=\$20C!
+I2CMM_SEL=\$20A!    SEL0   
 I2CMM_Vec=\$FFE0!
 MMSDA=\$04!         P1.2
 MMSCL=\$08!         P1.3
@@ -201,7 +201,7 @@ I2CM_IN=\$200!
 I2CM_OUT=\$202!
 I2CM_DIR=\$204!
 I2CM_REN=\$206!
-I2CM_SEL1=\$20C!
+I2CM_SEL=\$20A!     SEL0
 I2CM_Vec=\$FFE0!
 MSDA=\$04!          P1.2
 MSCL=\$08!          P1.3
@@ -212,7 +212,7 @@ I2CS_IN=\$200!
 I2CS_OUT=\$202!
 I2CS_DIR=\$204!
 I2CS_REN=\$206!
-I2CS_SEL1=\$20C!
+I2CS_SEL=\$20A!     SEL0
 I2CS_Vec=\$FFE0!
 SSDA=\$40!          P1.2
 SSCL=\$80!          P1.3
@@ -224,7 +224,7 @@ SD_CDIN=\$201!
 SD_CSOUT=\$203!
 SD_CSDIR=\$205!
 
-SD_SEL=\$20D!   ; P2SEL0 to configure UCB0
-SD_REN=\$207!   ; P2REN to configure pullup resistors
-SD_BUS=\$070!   ; pins P2.4 as UCB0CLK, P2.6 as UCB0SIMO & P25 as UCB0SOMI
+SD_SEL=\$20A!   ; PASEL0 to configure UCB0
+SD_REN=\$206!   ; PAREN to configure pullup resistors
+SD_BUS=\$7000!  ; pins P2.4 as UCB0CLK, P2.6 as UCB0SIMO & P25 as UCB0SOMI
 
index 0adc59b..7fde55a 100644 (file)
@@ -249,9 +249,8 @@ CTS         .set    10h         ; P2.4 bit position
   
 ; PORTx default wanted state : pins as input with pullup resistor
 
-            MOV #00100h,&PBDIR   ; all pins as inputs else P4.0
-            MOV #0FEFFh,&PBOUT   ; OUT1 for all pins else P4
             BIS #0FEFFh,&PBREN   ; pullup for all pins resistors else P4.0
+            MOV #-1,&PBOUT   ; OUT1 for all pins else P4
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORT5/6
index ac87cfc..f684fd0 100644 (file)
@@ -197,7 +197,7 @@ TERM_BUS=3!
 
 TERM_IN=\$200!
 TERM_REN=\$206!
-TERM_SEL=\$20C!
+TERM_SEL=\$20A!     \ SEL0
 TERM_IE=\$21A!
 TERM_IFG=\$21C!
 
@@ -248,9 +248,9 @@ LCDVo_SEL=\$20A!        SEL0
 LCDVo=\$40!
 !LCD timer
 LCD_TIM_CTL=\$300!      TA0CTL
-LCD_TIM_CCTL=\$306!     TA0CCTL2
+LCD_TIM_CCTLn=\$306!    TA0CCTL2
 LCD_TIM_CCR0=\$312!     TA0CCR0
-LCD_TIM_CCR=\$316!      TA0CCR2
+LCD_TIM_CCRn=\$316!     TA0CCR2
 LCD_TIM_EX0=\$320!      TA0EX0
 
 
@@ -287,10 +287,10 @@ RC5=\$80!               P1.7 IR_RC5
 
 !IR_RC5 timer
 IR_TIM_CTL=\$340!       TA1CTL
-IR_TIM_CCTL2=\$346!     TA1CCTL2
+IR_TIM_CCTLn=\$346!     TA1CCTL2
 IR_TIM_R=\$350!         TA1R
 IR_TIM_CCR0=\$352!      TA1CCR0
-IR_TIM_CCR2=\$356!      TA1CCR2
+IR_TIM_CCRn=\$356!      TA1CCR2
 IR_TIM_EX0=\$360!       TA1EX0
 
 
@@ -347,7 +347,7 @@ SD_CDIN=\$261!
 SD_CSOUT=\$263!
 SD_CSDIR=\$265!
 
-SD_SEL1=\$24C!  ; to configure UCB0
-SD_REN=\$246!   ; to configure pullup resistors
-SD_BUS=\$0E!    ; pins P5.1 as UCB0CLK, P5.2 as UCB0SIMO & P5.3 as UCB0SOMI
+SD_SEL=\$24A!   ; PCSEL0 to configure UCB0
+SD_REN=\$246!   ; PCREN to configure pullup resistors
+SD_BUS=\$000E!  ; pins P5.1 as UCB0CLK, P5.2 as UCB0SIMO & P5.3 as UCB0SOMI
 
index ba978c7..74894be 100644 (file)
@@ -224,8 +224,8 @@ SD_CSDIR    .equ P2DIR
 
 ; P2.7 is used to power the accelerometer and NTC voltage divider ==> output low = power OFF
 
-    MOV #07FEFh,&PAREN  ; all input pins with pull up resistor else P2.7 and P1.4 with pull down
-    MOV #-1,&PAOUT
+    MOV #-1,&PAREN      ; all pins inputs with pull up/down resistor
+    MOV #07FEFh,&PAOUT  ; all input pins with pull up resistor else P2.7 and P1.4
 
     .IFDEF TERMINAL4WIRES
 ; RTS output is wired to the CTS input of UART2USB bridge 
@@ -264,9 +264,8 @@ S1          .equ 1
 
 ; PORTx default wanted state : pins as input with pullup resistor
 
-    MOV #0FF08h,&PAOUT      ; all pins inputs hifh else blues LEDs and ADC inputs
-    BIS #0FF08h,&PAREN      ; all pins with pull resistors else blues LEDs and ADC inputs
-    BIS #000F0h,&PADIR      ; all pins as input else blues LEDs
+    MOV #-1,&PBREN      ; all pins inputs with pull up/down resistor
+    BIS #0FF08h,&PBOUT  ; all pins with pull up resistor else blues LEDs and ADC inputs
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORTJ
@@ -280,9 +279,8 @@ S1          .equ 1
 
 ; PORTx default wanted state : pins as input with pullup resistor else leds output low
 
-    MOV.B #0F0h,&PJOUT      ; all pins high else blues LEDs
-    BIS.B #0F0h,&PJREN      ; all pins 1 with pull resistors else blues LEDs
-    BIS.B #00Fh,&PJDIR      ; all pins as input else blues LEDs
+    BIS.B #-1,&PJREN    ; all pins inputs with pull up/down resistor
+    MOV.B #0F0h,&PJOUT  ; all pins with pull up resistor else blues LEDs
 
 
 ; ----------------------------------------------------------------------
index f118837..db9c58f 100644 (file)
@@ -223,9 +223,9 @@ LCD_DB_REN=\$206!
 LCD_DB=\$0F!            P1.0-3
 !LCD timer
 LCD_TIM_CTL=\$3C0!      TB0CTL
-LCD_TIM_CCTL2=\$3C6!    TB0CCTL2
+LCD_TIM_CCTLn=\$3C6!    TB0CCTL2
 LCD_TIM_CCR0=\$3D2!     TB0CCR0
-LCD_TIM_CCR2=\$3D6!     TB0CCR2
+LCD_TIM_CCRn=\$3D6!     TB0CCR2
 LCD_TIM_EX0=\$3E0!      TB0EX0
 
 
index 3751877..8ecc1bf 100644 (file)
 ;                                      ---          |
 ;                                  100n |    2k2    |
 ; P2.2 - UCB0 CLK TB0.2  J4.7   >---||--+--^/\/\/v--+---->  3 LCD_Vo (=0V6 without modulation)
-; P3.4 -                 J4.8   ------------------------->  4 LCD_RS
-; P3.5 -                 J4.9   ------------------------->  5 LCD_R/W
-; P3.6 -                 J4.10  ------------------------->  6 LCD_EN0
-; PJ.0 -                 J3.1   <------------------------> 11 LCD_DB4
-; PJ.1 -                 J3.3   <------------------------> 12 LCD_DB5
-; PJ.2 -                 J3.5   <------------------------> 13 LCD_DB5
-; PJ.3 -                 J3.7   <------------------------> 14 LCD_DB7
+; P3.4 -                 J4.8   ----------orange--------->  4 LCD_RS
+; P3.5 -                 J4.9   ----------blue----------->  5 LCD_R/W
+; P3.6 -                 J4.10  ----------black---------->  6 LCD_EN0
+; PJ.0 -                 J3.1   <---------brown----------> 11 LCD_DB4
+; PJ.1 -                 J3.3   <---------red------------> 12 LCD_DB5
+; PJ.2 -                 J3.5   <---------orange---------> 13 LCD_DB5
+; PJ.3 -                 J3.7   <---------yellow---------> 14 LCD_DB7
          
 ;                                 +--4k7-< DeepRST <-- GND 
 ;                                 |
-; P2.0 - UCA0 TXD        J13.8  <-+-> RX   UARTtoUSB bridge
-; P2.1 - UCA0 RXD        J13.10 <---- TX   UARTtoUSB bridge
-; P4.1 - RTS             J13.14 ----> CTS  UARTtoUSB bridge (optional hardware control flow)
+; P2.0 - UCA0 TXD        J13.8  <-+->white--> RX   UARTtoUSB bridge
+; P2.1 - UCA0 RXD        J13.10 <----green--- TX   UARTtoUSB bridge
+; P4.1 - RTS             J13.14 -----blue---> CTS  UARTtoUSB bridge (optional hardware control flow)
 ;  VCC -                 J13.16 <---- VCC  (optional supply from UARTtoUSB bridge - WARNING ! 3.3V !)
 ;  GND -                 J13.20 <---> GND  (optional supply from UARTtoUSB bridge)
          
 ;  VCC -                 J11.1  ----> VCC  SD_CardAdapter
 ;  GND -                 J12.3  <---> GND  SD_CardAdapter
 ; P2.4 - UCA1 CLK        J4.6   ----> CLK  SD_CardAdapter (SCK)  
-; P4.3 -                 J4.5   ----> CS   SD_CardAdapter (Card Select)
 ; P2.5 - UCA1 TXD/SIMO   J4.4   ----> SDI  SD_CardAdapter (MOSI)
 ; P2.6 - UCA1 RXD/SOMI   J4.3   <---- SDO  SD_CardAdapter (MISO)
+; P4.3 -                 J4.5   ----> CS   SD_CardAdapter (Card Select)
 ; P4.2 -                 J4.2   <---- CD   SD_CardAdapter (Card Detect)
-         
-; P4.0 -                 J3.10  <---- OUT  IR_Receiver (1 TSOP32236)
-;  VCC -                 J3.2   ----> VCC  IR_Receiver (2 TSOP32236)
-;  GND -                 J3.9   <---> GND  IR_Receiver (3 TSOP32236)
-         
+;                                                                    
+; P4.0 use is not compatible with core option "TERMINAL5WIRES"
+; P4.0 -                 J3.10  <---- OUT  IR_Receiver (1 TSOP32236) ───┐
+;                                                                       └┌───┐
+;  VCC -                 J3.2   ----> VCC  IR_Receiver (2 TSOP32236) ────| O |
+;                                                                       ┌└───┘
+;  GND -                 J3.9   <---> GND  IR_Receiver (3 TSOP32236) ───┘
+
 ; P1.2 -                 J5.19  <---> SDA  I2C SOFTWARE MASTER
 ; P1.3 -                 J5.11  <---> SCL  I2C SOFTWARE MASTER
 ; P1.4 -           TB0.1 J5.12  <---> free
 
 ; PORTx default wanted state : pins as input with pullup resistor
 
-            BIS     #1,&PADIR   ; all pins 0 as input else P1.0 (LED2)
             MOV     #0FFFEh,&PAOUT  ; all pins high  else P1.0 (LED2)
-            BIC     #1,&PAREN   ; all pins 1 with pull resistors else P1.0 (LED2)
+            BIS     #-1,&PAREN  ; all pins 1 with pull resistors else P1.0 (LED2)
 
     .IFDEF UCA0_TERM
 ; P2.0  UCA0-TXD    --> USB2UART RXD    
@@ -247,6 +249,12 @@ TERM_SEL    .equ P2SEL1
 TERM_REN    .equ P2REN
     .ENDIF
 
+    .IFDEF UCA1_SD
+SD_SEL      .equ PASEL1 ; to configure UCA1
+SD_REN      .equ PAREN  ; to configure pullup resistors
+SD_BUS      .equ 7000h  ; pins P2.4 as UCB0CLK, P2.5 as UCB0SIMO & P2.6 as UCB0SOMI
+    .ENDIF
+
     .IFDEF UCB0_SD
 SD_SEL      .equ PASEL1 ; to configure UCB0
 SD_REN      .equ PAREN  ; to configure pullup resistors
@@ -259,8 +267,8 @@ SD_BUS      .equ 04C0h  ; pins P2.2 as UCB0CLK, P1.6 as UCB0SIMO & P1.7 as UCB0S
 ; ----------------------------------------------------------------------
 ; reset state : Px{DIR,REN,SEL0,SEL1,SELC,IE,IFG,IV} = 0 ; Px{IN,OUT,IES} = ?
 
-            MOV #-1,&PBREN  ; all pins as input with resistor
-            MOV #-1,&PBOUT  ; all pins as input with resistor
+            BIS #-1,&PBREN  ; all pins as input with resistor
+            MOV #0BFFFh,&PBOUT  ; all pins as input with pull up resistor else P4.6
 
 ; PORT3 usage
 
@@ -299,7 +307,7 @@ SD_CSDIR    .equ P4DIR
 ; PORTx default wanted state : pins as input with pullup resistor
 
             MOV.B #-1,&PJOUT    ; pullup resistors
-            MOV.B #-1,&PJREN    ; enable pullup/pulldown resistors
+            BIS.B #-1,&PJREN    ; enable pullup/pulldown resistors
 
 ; ----------------------------------------------------------------------
 ; FRAM config
index e408fce..7d0c149 100644 (file)
@@ -262,9 +262,9 @@ LCDVo_SEL=\$20B!    SEL0
 LCDVo=\$04
 !LCD timer
 LCD_TIM_CTL=\$3C0!      TB0CTL
-LCD_TIM_CCTL2=\$3C6!    TB0CCTL2
+LCD_TIM_CCTLn=\$3C6!    TB0CCTL2
 LCD_TIM_CCR0=\$3D2!     TB0CCR0
-LCD_TIM_CCR2=\$3D6!     TB0CCR2
+LCD_TIM_CCRn=\$3D6!     TB0CCR2
 LCD_TIM_EX0=\$3E0!      TB0EX0
 
 LCD_CMD_IN=\$220!   P3
index a93d433..367d0f1 100644 (file)
@@ -59,7 +59,7 @@
 ; GND
 ; P3.0/A12/C12                 <------------------------> 11 LCD_DB4   
 ; P3.1/A13/C13                 <------------------------> 12 LCD_DB5
-; P3.2/A14/C14                 <------------------------> 13 LCD_DB5
+; P3.2/A14/C14                 <------------------------> 13 LCD_DB6
 ; P3.3/A15/C15                 <------------------------> 14 LCD_DB7
 ; P1.4/TB0.1/UCA0STE/A4/C4
 ; P1.5/TB0.2/UCA0CLK/A5/C5     >---||--+--^/\/\/v--+---->  3 LCD_Vo (=0V6 without modulation)    
 
 ; PORTx default wanted state : pins as input with pullup resistor
 
-            BIS #3,&PADIR       ; all pins 0 as input else LEDs
-            MOV #0FFFCh,&PAOUT  ; all pins high  else LEDs
-            BIC #3,&PAREN       ; all pins 1 with pull resistors else LEDs
+;            BIS #3,&PADIR       ; all pins 0 as input else LEDs
+;            MOV #0FFFCh,&PAOUT  ; all pins high  else LEDs
+;            BIC #3,&PAREN       ; all pins 1 with pull resistors else LEDs
+
+            BIS #-1,&PAREN       ; all pins 1 with pull up/down resistors
+            MOV #0FFFCh,&PAOUT   ; all pins high  else LEDs
 
 
 ; PORT2 FastForth usage
@@ -206,7 +209,7 @@ SD_CSDIR    .equ P4DIR
 
 
             MOV #-1,&PBREN      ; REN1 all pullup resistors
-            MOV #-1,&PBOUT
+            BIS #-1,&PBOUT
 
     .IFDEF TERMINAL4WIRES
         .IFDEF TERMINAL5WIRES
index 8ddca21..bf75b39 100644 (file)
@@ -231,9 +231,9 @@ LCDVo_SEL=\$20A!        SEL0
 LCDVo=\$20!             P1.5
 !LCD timer
 LCD_TIM_CTL=\$3C0!      TB0CTL
-LCD_TIM_CCTL2=\$3C6!    TB0CCTL2
+LCD_TIM_CCTLn=\$3C6!    TB0CCTL2
 LCD_TIM_CCR0=\$3D2!     TB0CCR0
-LCD_TIM_CCR2=\$3D6!     TB0CCR2
+LCD_TIM_CCRn=\$3D6!     TB0CCR2
 LCD_TIM_EX0=\$3E0!      TB0EX0
 
 
index 28310f7..5ea8a41 100644 (file)
@@ -275,9 +275,8 @@ SD_CSDIR    .equ P2DIR
 
 ; PORTx default wanted state : pins as input with pullup resistor
 
-            MOV     #1,&PADIR     ; all pins as input else P1.0
-            MOV     #-2,&PAOUT    ; all pins with pullup resistors else P1.0 output low
-            SUB     #2,&PAREN     ; all pins with pull resistors else P1.0
+            MOV     #-2,&PAOUT    ; all pins with pullup resistors else P1.0
+            BIS     #-1,&PAREN     ; all pins with pull up/down resistor
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORT3/4
@@ -368,9 +367,8 @@ CTS         .equ  2             ; P3.1
     
 ; PORTx default wanted state : pins as input with pullup resistor
 
-            MOV     #00080h,&PEDIR    ; all pins as input else P9.7
             MOV     #0FF7Fh,&PEOUT    ; all pins high else P9.7
-            MOV     #0FF7Fh,&PEREN    ; all pins with pull resistors else P9.7
+            MOV     #-1,&PEREN    ; all pins with pull resistors else P9.7
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORTJ
index fb49127..20f4911 100644 (file)
@@ -169,9 +169,9 @@ LCDVo=\$40!     P3.6
 
 !LCD timer
 LCD_TIM_CTL=\$3C0!      TB0CTL
-LCD_TIM_CCTL2=\$3C6!    TB0CCTL2
+LCD_TIM_CCTLn=\$3C6!    TB0CCTL2
 LCD_TIM_CCR0=\$3D2!     TB0CCR0
-LCD_TIM_CCR2=\$3D6!     TB0CCR2
+LCD_TIM_CCRn=\$3D6!     TB0CCR2
 LCD_TIM_EX0=\$3E0!      TB0EX0
 
 LCD_CMD_IN=\$221!
index 69636da..52bee9e 100644 (file)
@@ -25,6 +25,9 @@
     .IFDEF MSP_EXP430FR2433_I2C
     .include "MSP_EXP430FR2433.asm"
     .ENDIF
+    .IFDEF LP_MSP430FR2476
+    .include "LP_MSP430FR2476.asm"
+    .ENDIF
     .IFDEF CHIPSTICK_FR2433
     .include "CHIPSTICK_FR2433.asm"
     .ENDIF
index 9c5a29d..cea70fe 100644 (file)
@@ -659,9 +659,8 @@ FREQ    .set " 24MHz"
 ; define MAIN max bound
 ; -------------------------------------
 FRAM_FULL   .equ SIGNATURES-50h ; set to protect JTAG and BSL signatures against overwrite.
-                                ; notice that ALLOT memory space beyond SIGNATURES don't corrupt it,
-                                ; thus 80 bytes are sufficient considering what can be compiled in one line + WORD use.
-                                ; good practice: one line for each ALLOT command.
+                                ; 80 bytes are sufficient considering what can be compiled in one line + WORD use.
+                                ; take care with ALLOT : don't ALLOT more than 32 words by line!
 
 ;-----------------------------------------------------------------------
 ; DEVICE I/O, MEMORY, SFR, vectors and minimum FORTH I/O declarations
@@ -709,6 +708,7 @@ UCA1_SD
     .ENDIF
 
     .IFDEF CHIPSTICK_FR2433
+; no LF_XTAL to select ACLK = REFOCLK
 UCA0_TERM 
 UCB0_SD
     .include "MSP430FR2433.inc"
@@ -721,6 +721,13 @@ UCB1_SD
     .include "MSP430FR2355.inc"
     .ENDIF
 
+    .IFDEF LP_MSP430FR2476
+; LF_XTAL
+UCA0_TERM
+UCA1_SD
+    .include "MSP430FR2476.inc"
+    .ENDIF
+
 ; vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
 ; add here your device.inc item:
 ;     .IFDEF MY_MSP430FR5738_1
@@ -731,66 +738,59 @@ UCB1_SD
 ;     .ENDIF
 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-; ---------------------------
-; compute value of FORTHADDON
-; ---------------------------
-FADDON .set 0
-    .IFDEF CONDCOMP
-FADDON .SET FADDON | 01h
-    .ENDIF
-    .IFDEF MSP430ASSEMBLER
-FADDON .SET FADDON | 02h
-    .ENDIF
-    .IFDEF EXTENDED_ASM
-FADDON .SET FADDON | 04h
-    .ENDIF
-    .IFDEF NONAME
-FADDON .SET FADDON | 08h
-    .ENDIF
-    .IFDEF VOCABULARY_SET
-FADDON .SET FADDON | 10h
-    .ENDIF
-    .IFDEF DOUBLE_INPUT
-FADDON .SET FADDON | 20h
-    .ENDIF
-    .IFDEF FIXPOINT_INPUT
-FADDON .SET FADDON | 40h
-    .ENDIF
-    .IFDEF SD_CARD_LOADER
-FADDON .SET FADDON | 80h
-    .ENDIF
-    .IFDEF SD_CARD_READ_WRITE
-FADDON .SET FADDON | 100h
-    .ENDIF
-    .IFDEF BOOTLOADER
-FADDON .SET FADDON | 200h
+    .IFDEF MSP_EXP430FR2433_I2C
+LF_XTAL
+UCA1_SD
+UCB0_TERM
+    .include "MSP430FR2433.inc"
     .ENDIF
-    .IFDEF PROMPT
-FADDON .SET FADDON | 400h
+
+    .IFDEF MY_MSP430FR5738
+LF_XTAL
+UCA0_TERM
+UCB0_SD
+    .include "MSP430FR5738.inc"
     .ENDIF
-    .IFDEF HALFDUPLEX
-FADDON .SET FADDON | 800h
+
+    .IFDEF MY_MSP430FR5734
+LF_XTAL
+UCA0_TERM
+UCB0_SD
+    .include "MSP430FR5734.inc"
     .ENDIF
-    .IFDEF TERMINAL3WIRES
-FADDON .SET FADDON | 1000h
+
+    .IFDEF MY_MSP430FR5948
+LF_XTAL
+UCA0_TERM
+UCA1_SD
+    .include "MSP430FR5948.inc"
     .ENDIF
-    .IFDEF TERMINAL4WIRES
-FADDON .SET FADDON | 2000h
+
+    .IFDEF JMJ_BOX
+UCA0_TERM
+; no LF_XTAL to select ACLK = VLOCLK
+    .include "MSP430FR5738.inc"
     .ENDIF
-    .IFDEF TERMINAL5WIRES
-FADDON .SET FADDON | 4000h
+
+    .IFDEF PA_PA_MSP430
+UCA0_TERM
+; no LF_XTAL to select ACLK = VLOCLK
+    .include "MSP430FR5738.inc"
     .ENDIF
-    .IFDEF LF_XTAL
-FADDON .SET FADDON | 8000h
+
+    .IFDEF PA_Core_MSP430
+LF_XTAL
+UCA0_TERM
+    .include "MSP430FR5948.inc"
     .ENDIF
 
 ; --------------------------
 ; COMPUTE SWITCHES
 ; --------------------------
 
-    .IFDEF EXTENDED_ASM
-        .IFNDEF MSP430ASSEMBLER
-MSP430ASSEMBLER
+    .IFDEF EXTENDED_MEM
+        .IFNDEF DOUBLE_INPUT
+DOUBLE_INPUT
         .ENDIF
     .ENDIF
 
@@ -813,14 +813,24 @@ DEFER_QUIT
     .ENDIF
 
     .IFDEF EXTENDED_ASM
-        .IFNDEF DOUBLE_INPUT ; for indirect extended indexed modes of MOVA ADDA CMPA SUBA instructions
+;        .IFNDEF MSP430ASSEMBLER
+;MSP430ASSEMBLER
+;        .ENDIF
+        .IFNDEF DOUBLE_INPUT
 DOUBLE_INPUT
         .ENDIF
-        .IFNDEF DEFER_ACCEPT ; to write EXTD_LOAD"
-DEFER_ACCEPT
+    .ELSE
+        .IFDEF EXTENDED_MEM
+            .IFNDEF MSP430ASSEMBLER
+MSP430ASSEMBLER
+            .ENDIF
+            .IFNDEF DOUBLE_INPUT
+DOUBLE_INPUT ; for indirect extended indexed modes of MOVA ADDA CMPA SUBA instructions
+            .ENDIF
         .ENDIF
     .ENDIF
 
+
     .IFDEF FIXPOINT
         .IFNDEF FIXPOINT_INPUT
 FIXPOINT_INPUT              ; to interpret fixpoint numbers
@@ -846,4 +856,60 @@ HALFDUPLEX
         .ENDIF
     .ENDIF
 
+; ---------------------------
+; compute value of FORTHADDON
+; ---------------------------
+FADDON .set 0
+    .IFDEF CONDCOMP
+FADDON .SET FADDON | 01h
+    .ENDIF
+    .IFDEF MSP430ASSEMBLER
+FADDON .SET FADDON | 02h
+    .ENDIF
+    .IFDEF EXTENDED_ASM
+FADDON .SET FADDON | 04h
+    .ENDIF
+    .IFDEF NONAME
+FADDON .SET FADDON | 08h
+    .ENDIF
+    .IFDEF VOCABULARY_SET
+FADDON .SET FADDON | 10h
+    .ENDIF
+    .IFDEF DOUBLE_INPUT
+FADDON .SET FADDON | 20h
+    .ENDIF
+    .IFDEF FIXPOINT_INPUT
+FADDON .SET FADDON | 40h
+    .ENDIF
+    .IFDEF SD_CARD_LOADER
+FADDON .SET FADDON | 80h
+    .ENDIF
+    .IFDEF SD_CARD_READ_WRITE
+FADDON .SET FADDON | 100h
+    .ENDIF
+    .IFDEF BOOTLOADER
+FADDON .SET FADDON | 200h
+    .ENDIF
+    .IFDEF EXTENDED_MEM
+    .IFNDEF EXTENDED_ASM
+FADDON .SET FADDON | 400h
+    .ENDIF
+    .ENDIF
+    .IFDEF HALFDUPLEX
+FADDON .SET FADDON | 800h
+    .ENDIF
+    .IFDEF TERMINAL3WIRES
+FADDON .SET FADDON | 1000h
+    .ENDIF
+    .IFDEF TERMINAL4WIRES
+FADDON .SET FADDON | 2000h
+    .ENDIF
+    .IFDEF TERMINAL5WIRES
+FADDON .SET FADDON | 4000h
+    .ENDIF
+    .IFDEF LF_XTAL
+FADDON .SET FADDON | 8000h
+    .ENDIF
+
+
     .listing ON